// Create a .h and .cpp file and create a new project include these file// ----------code for .h file--------------- #import <msxml.dll> named_guids using namespace MSXML; class CXMLEngine { public: IXMLDOMDocumentPtr objDOMDoc; BSTR mXML; public: CXMLEngine(){} ~CXMLEngine(); int CXMLEngine::Initialize(char *sFileName); IXMLDOMNodePtr GetNode(BSTR sKey); HRESULT DeleteNode(CString strName); HRESULT SaveXML_To_File(char *filename); HRESULT AddNodeKey(char *name,char *folderpath,char *moddate,char *ssd); HRESULT ModifyKey(char *searchName,char *name,char *folderpath,char *moddate,char *ssd); //HRESULT SetAttribute(IXMLDOMElement *oNode,char *sAttributeName, char *sAttributeValue); void Refresh(); }; ----------END code for .h fil------------ ----------Code for .cpp file------------- #include "stdafx.h" #include "Xmltemp.h" inline void EVAL_HR( HRESULT _hr ) { if FAILED(_hr) throw(_hr); } int CXMLEngine::Initialize(char *sFileName) { char searchPath[200]; try { EVAL_HR(CoInitialize(NULL)); //EVAL_HR(objDOMDoc.CreateInstance("Msxml2.DOMDocument.3.0")); EVAL_HR(objDOMDoc.CreateInstance("microsoft.xmldom")); GetCurrentDirectory(200, searchPath); strcat(searchPath,"\\"); strcat(searchPath,sFileName); _variant_t varXml(searchPath); _variant_t varOut((bool)TRUE); objDOMDoc->async = false; varOut = objDOMDoc->load(sFileName); // (varXml); mXML=objDOMDoc->xml; if ((bool)varOut == FALSE) throw(0); return 0; } catch(...) { // AfxMessageBox("Exception occurred"); return -1; } CoUninitialize(); } IXMLDOMNodePtr CXMLEngine::GetNode(BSTR sKey) { /* Purpose:locate a specific node in the xml structure by its "key" value */ CString sCriteria; IXMLDOMNodePtr oNode; sCriteria="Root/folders[@name $eq$ '"; sCriteria+=sKey; sCriteria+= "']"; oNode=objDOMDoc->selectSingleNode(_bstr_t(sCriteria)); // (_bstr_t(sCriteria)); if (oNode!=NULL) { return(oNode); } else { AfxMessageBox("Node Not Found"); return(NULL); } } HRESULT CXMLEngine::DeleteNode(CString strName) { IXMLDOMNodePtr urlsPtr = objDOMDoc->selectSingleNode(_T("Root")); // (_T("xml_api_reply")); IXMLDOMNodeListPtr nodeListPtr = urlsPtr->selectNodes(_bstr_t("folders")); // (_bstr_t("weather")); long item=nodeListPtr->Getlength(); for(int i=0;i<nodeListPtr->Getlength();i++) { _bstr_t tr1 =nodeListPtr-> item[i]->
M
mohit_1082
@mohit_1082
Posts
-
Cannot open XML File -
how to capture system date change event?use function "afx_msg void OnTimeChange( )"