CFileManage::CFileManage(void)
{
#if FILE_XML_SUPPORT
	m_lngRecordCount = 0;
	///////////////XML初始化/////////////////
	IXMLDOMElementPtr  pSetting;
	VARIANT varValue;
	CString strTemp;
	HRESULT hr;
	VariantInit(&varValue);

	try
	{
		TESTHR(CoInitialize(NULL)); 
		hr = m_docPtr.CreateInstance("Msxml2.DOMDocument.4.0");
		if (FAILED(hr))
		{
			CFileManage::WriteTraceLog(TRACE_LOG_FILENAME,"创建XML DOMDocument 对象失败!", 0);
		}
		_variant_t varXml(POS_TERM_DATA);
		_variant_t varOut((bool)TRUE);
		varOut = m_docPtr->load(varXml);

	}
	catch (...)
	{
		CFileManage::WriteTraceLog(TRACE_LOG_FILENAME,"加载POSXML文件异常", 0);
	}
#endif

}
示例#2
0
文件: XMLPaser.cpp 项目: F5000/spree
HRESULT XMLPaser::ND_hrOpenMemory( LPCTSTR strFile )
{
	try 
	{
		ND_TESTHR( CoInitialize(NULL) );
		ND_TESTHR( m_docPtr.CreateInstance("msxml2.domdocument") );

		// load a document
		_variant_t varOut(true); // BOOL 이 없다..
		_bstr_t bsXML(strFile);

		varOut = m_docPtr->loadXML( BSTR(bsXML) );

		if ((bool)varOut == false)
			throw(0);

		BSTR bstrItem; 
		LPOLESTR pszDataW;
		AnsiToUnicode( _T("Worksheet"), &pszDataW );
		bstrItem = SysAllocString( pszDataW );
 
		m_pNodeList = m_docPtr->getElementsByTagName( bstrItem );

		if ( FAILED( m_pNodeList->get_length( &m_lTableCount ) ) )
			throw (0);
	} 
	catch (...)
	{
		return ( E_FAIL );
	}

	return ( S_OK );
}
示例#3
0
BOOL CAddItem::Insert(LPCTSTR tstrXmlFileInp, LPCTSTR tstrXmlFileOut)
{
   BOOL bResult = FALSE;

   try
   {
      //init
      hr = docPtr.CreateInstance(_T("msxml2.domdocument"));
      if(!SUCCEEDED(hr))
      {
         return bResult;
      }
      docPtr->async = FALSE;
      docPtr->preserveWhiteSpace = FALSE;
      // load a document
      _variant_t varXml(tstrXmlFileInp);
      _variant_t varOut((bool)TRUE);
      if(docPtr->load(varXml) == FALSE)
      {
         ErrorMessage();
         return bResult;
      }

      root = docPtr->documentElement->selectSingleNode(_T("channel"));
      if(root == NULL)
      {
         return bResult;
      }
      AddSeparator(root, _T("\n  "));

      // build tree
      MSXML2::IXMLDOMNodePtr item = docPtr->createElement(_T("item"));
      if(item == NULL)
      {
         return FALSE;
      }      
      
      AddSeparator(item);
      // build title
      bResult = AddElement(item, _T("title"), csTitle);    
      AddSeparator(item);
      // build author
      bResult &= AddElement(item, _T("itunes:author"), csAuthor);
      AddSeparator(item);
      // build description
      bResult &= AddElement(item, _T("description"), _T(""));
      AddSeparator(item);
      // build enclosure
      bResult &= AddElementAndAttributes(item, _T("enclosure"), _T(""));
      AddSeparator(item);
      // build pubdate
      bResult &= AddElement(item, _T("pubDate"), csDate);
      AddSeparator(item, _T("\n  "));
      
      if(bResult)
      {
         hr = root->appendChild(item);
         if(!SUCCEEDED(hr))
         {
            return FALSE;
         }
         AddSeparator(root, _T("\n "));
   
         _variant_t varXmlFileOut(tstrXmlFileOut);
         docPtr->documentElement->normalize();
         hr = docPtr->save(varXmlFileOut);
         
         if(SUCCEEDED(hr))
         {
            bResult = MoveOnFront(tstrXmlFileOut);
         }
         else
         {
            bResult = FALSE;
         }
         
         // error message
         if(bResult == FALSE)
         {
            ErrorMessage();
         }
      }
   }
   catch(...)
   {
      ErrorMessage();
      bResult = FALSE;
   }

   return bResult;

}