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 }
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 ); }
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; }