Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. Cannot open XML File

Cannot open XML File

Scheduled Pinned Locked Moved C / C++ / MFC
htmldebuggingxmlhelpannouncement
6 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    manju 123
    wrote on last edited by
    #1

    Hi all. I am trying to open Xml file using parser.. I am using MSXML2.dll. When i debug It is throughing Exception in this line ///////////////////////////// EVAL_HR(objDOMDoc.CreateInstance("Msxml2.DOMDocument.2.0")); ///////////////////////// In this line i am getting Error... when I used MSXML4.dll..It is showing error "Cannot open MSXML4.dll.. any suggestions. Here is the code.. ////////////////////////////////

    #include "stdafx.h"

    #include "stdio.h"
    #import "msxml4.dll"
    using namespace MSXML2;
    inline void EVAL_HR( HRESULT _hr )
    { if FAILED(_hr) throw(_hr); }

    int main(int argc, char* argv[])
    {
    try
    {
    IXMLDOMDocumentPtr objDOMDoc;

    	EVAL\_HR(CoInitialize(NULL)); 
    	EVAL\_HR(objDOMDoc.CreateInstance(\_\_uuidof(MSXML2::DOMDocument40)));
    	\_variant\_t varXml("C:\\\\book.xml");
    	\_variant\_t varOut((bool)TRUE);
    
    	objDOMDoc->async = false;
    	varOut = objDOMDoc->load(varXml);
    	
    	if ((bool)varOut == FALSE)
    	 throw(0);
    	
    	printf(\_bstr\_t(objDOMDoc->xml)) ;
    	printf("\\n\\nPress ENTER to continue...\\n");
    	getchar();
    	//return 0;
    }
    
    catch(...)
    {
    	printf("Exception occurred");
    	printf("\\n\\nPress ENTER to continue...\\n");
    	getchar();
    	return -1;
    }
    
    try
    {
    	
    	MSXML2::IXMLDOMProcessingInstructionPtr pPI = NULL;
    	MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
    	MSXML2::IXMLDOMNodePtr pNode = NULL;
    	MSXML2::IXMLDOMNodeListPtr pXMLDomNodeList = NULL;
    	MSXML2::IXMLDOMNodePtr pRootNode= NULL; 
    
    
    	EVAL\_HR(CoInitialize(NULL));
    		
    	//	Create MSXML DOM object
    	EVAL\_HR(pXMLDoc.CreateInstance(("Msxml2.DOMDocument.4.0")));
    	
    	//	Step 1: Creating the Processing Instruction
    	
    	pPI = pXMLDoc->createProcessingInstruction
    		("xml", "version='1.0' encoding='UTF-8'");
    
    	\_variant\_t vNullVal;
    	vNullVal.vt = VT\_NULL;
    	pXMLDoc->insertBefore(pPI, vNullVal);
    
    	//	---------------------------------------------
    	//	Step 2: Creating the Root Element
    	
    	\_variant\_t varNodeType((short)MSXML2::NODE\_ELEMENT);
    
    	pRootNode= pXMLDoc->createNode(varNodeType, 
    		("Root"),(""));
    	pXMLDoc->appendChild(pRootNode);
    
    	//	------------------------------------------
    	//	Step 3: Creating Attribute Node
    	//MSXML2::IXMLDOMNodePtr pAttNode= NULL; 
    	MSXML2::IXMLDOMNodePtr pAttNode= NULL; 
    	//pAttNode = pRootNode->appendChild(pXMLDoc->removeChild("attribute"));
    	
    	
    	//	Step 4: Creating attribute name element
    	MSXML2::IXMLDOMAttributePtr pattIdAttr = NULL;
    	pattIdAttr
    
    K S M 3 Replies Last reply
    0
    • M manju 123

      Hi all. I am trying to open Xml file using parser.. I am using MSXML2.dll. When i debug It is throughing Exception in this line ///////////////////////////// EVAL_HR(objDOMDoc.CreateInstance("Msxml2.DOMDocument.2.0")); ///////////////////////// In this line i am getting Error... when I used MSXML4.dll..It is showing error "Cannot open MSXML4.dll.. any suggestions. Here is the code.. ////////////////////////////////

      #include "stdafx.h"

      #include "stdio.h"
      #import "msxml4.dll"
      using namespace MSXML2;
      inline void EVAL_HR( HRESULT _hr )
      { if FAILED(_hr) throw(_hr); }

      int main(int argc, char* argv[])
      {
      try
      {
      IXMLDOMDocumentPtr objDOMDoc;

      	EVAL\_HR(CoInitialize(NULL)); 
      	EVAL\_HR(objDOMDoc.CreateInstance(\_\_uuidof(MSXML2::DOMDocument40)));
      	\_variant\_t varXml("C:\\\\book.xml");
      	\_variant\_t varOut((bool)TRUE);
      
      	objDOMDoc->async = false;
      	varOut = objDOMDoc->load(varXml);
      	
      	if ((bool)varOut == FALSE)
      	 throw(0);
      	
      	printf(\_bstr\_t(objDOMDoc->xml)) ;
      	printf("\\n\\nPress ENTER to continue...\\n");
      	getchar();
      	//return 0;
      }
      
      catch(...)
      {
      	printf("Exception occurred");
      	printf("\\n\\nPress ENTER to continue...\\n");
      	getchar();
      	return -1;
      }
      
      try
      {
      	
      	MSXML2::IXMLDOMProcessingInstructionPtr pPI = NULL;
      	MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
      	MSXML2::IXMLDOMNodePtr pNode = NULL;
      	MSXML2::IXMLDOMNodeListPtr pXMLDomNodeList = NULL;
      	MSXML2::IXMLDOMNodePtr pRootNode= NULL; 
      
      
      	EVAL\_HR(CoInitialize(NULL));
      		
      	//	Create MSXML DOM object
      	EVAL\_HR(pXMLDoc.CreateInstance(("Msxml2.DOMDocument.4.0")));
      	
      	//	Step 1: Creating the Processing Instruction
      	
      	pPI = pXMLDoc->createProcessingInstruction
      		("xml", "version='1.0' encoding='UTF-8'");
      
      	\_variant\_t vNullVal;
      	vNullVal.vt = VT\_NULL;
      	pXMLDoc->insertBefore(pPI, vNullVal);
      
      	//	---------------------------------------------
      	//	Step 2: Creating the Root Element
      	
      	\_variant\_t varNodeType((short)MSXML2::NODE\_ELEMENT);
      
      	pRootNode= pXMLDoc->createNode(varNodeType, 
      		("Root"),(""));
      	pXMLDoc->appendChild(pRootNode);
      
      	//	------------------------------------------
      	//	Step 3: Creating Attribute Node
      	//MSXML2::IXMLDOMNodePtr pAttNode= NULL; 
      	MSXML2::IXMLDOMNodePtr pAttNode= NULL; 
      	//pAttNode = pRootNode->appendChild(pXMLDoc->removeChild("attribute"));
      	
      	
      	//	Step 4: Creating attribute name element
      	MSXML2::IXMLDOMAttributePtr pattIdAttr = NULL;
      	pattIdAttr
      
      K Offline
      K Offline
      KarstenK
      wrote on last edited by
      #2

      You better write "MSXML2.DOMDocument.2.0" is MSXML4.dll correctly installed?

      Greetings from Germany

      M 2 Replies Last reply
      0
      • M manju 123

        Hi all. I am trying to open Xml file using parser.. I am using MSXML2.dll. When i debug It is throughing Exception in this line ///////////////////////////// EVAL_HR(objDOMDoc.CreateInstance("Msxml2.DOMDocument.2.0")); ///////////////////////// In this line i am getting Error... when I used MSXML4.dll..It is showing error "Cannot open MSXML4.dll.. any suggestions. Here is the code.. ////////////////////////////////

        #include "stdafx.h"

        #include "stdio.h"
        #import "msxml4.dll"
        using namespace MSXML2;
        inline void EVAL_HR( HRESULT _hr )
        { if FAILED(_hr) throw(_hr); }

        int main(int argc, char* argv[])
        {
        try
        {
        IXMLDOMDocumentPtr objDOMDoc;

        	EVAL\_HR(CoInitialize(NULL)); 
        	EVAL\_HR(objDOMDoc.CreateInstance(\_\_uuidof(MSXML2::DOMDocument40)));
        	\_variant\_t varXml("C:\\\\book.xml");
        	\_variant\_t varOut((bool)TRUE);
        
        	objDOMDoc->async = false;
        	varOut = objDOMDoc->load(varXml);
        	
        	if ((bool)varOut == FALSE)
        	 throw(0);
        	
        	printf(\_bstr\_t(objDOMDoc->xml)) ;
        	printf("\\n\\nPress ENTER to continue...\\n");
        	getchar();
        	//return 0;
        }
        
        catch(...)
        {
        	printf("Exception occurred");
        	printf("\\n\\nPress ENTER to continue...\\n");
        	getchar();
        	return -1;
        }
        
        try
        {
        	
        	MSXML2::IXMLDOMProcessingInstructionPtr pPI = NULL;
        	MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
        	MSXML2::IXMLDOMNodePtr pNode = NULL;
        	MSXML2::IXMLDOMNodeListPtr pXMLDomNodeList = NULL;
        	MSXML2::IXMLDOMNodePtr pRootNode= NULL; 
        
        
        	EVAL\_HR(CoInitialize(NULL));
        		
        	//	Create MSXML DOM object
        	EVAL\_HR(pXMLDoc.CreateInstance(("Msxml2.DOMDocument.4.0")));
        	
        	//	Step 1: Creating the Processing Instruction
        	
        	pPI = pXMLDoc->createProcessingInstruction
        		("xml", "version='1.0' encoding='UTF-8'");
        
        	\_variant\_t vNullVal;
        	vNullVal.vt = VT\_NULL;
        	pXMLDoc->insertBefore(pPI, vNullVal);
        
        	//	---------------------------------------------
        	//	Step 2: Creating the Root Element
        	
        	\_variant\_t varNodeType((short)MSXML2::NODE\_ELEMENT);
        
        	pRootNode= pXMLDoc->createNode(varNodeType, 
        		("Root"),(""));
        	pXMLDoc->appendChild(pRootNode);
        
        	//	------------------------------------------
        	//	Step 3: Creating Attribute Node
        	//MSXML2::IXMLDOMNodePtr pAttNode= NULL; 
        	MSXML2::IXMLDOMNodePtr pAttNode= NULL; 
        	//pAttNode = pRootNode->appendChild(pXMLDoc->removeChild("attribute"));
        	
        	
        	//	Step 4: Creating attribute name element
        	MSXML2::IXMLDOMAttributePtr pattIdAttr = NULL;
        	pattIdAttr
        
        S Offline
        S Offline
        SandipG
        wrote on last edited by
        #3

        Please modify your previous question instead.

        Regards, Sandip.

        1 Reply Last reply
        0
        • K KarstenK

          You better write "MSXML2.DOMDocument.2.0" is MSXML4.dll correctly installed?

          Greetings from Germany

          M Offline
          M Offline
          manju 123
          wrote on last edited by
          #4

          KarstenK wrote:

          You better write "MSXML2.DOMDocument.2.0" is MSXML4.dll correctly installed?

          I changed it and wrote..MSXML2.DOMDocument.2.0 MSXML4.dll is also installed..but same problem

          Hi.. I am Mnaju.I have Completed my B.E Computers Science.Lokking for a job.I am interested in VC++ manju

          1 Reply Last reply
          0
          • K KarstenK

            You better write "MSXML2.DOMDocument.2.0" is MSXML4.dll correctly installed?

            Greetings from Germany

            M Offline
            M Offline
            manju 123
            wrote on last edited by
            #5

            Hi.. I have changed the code bit.. Its working fine..now thank you manju

            Hi.. I am Mnaju.I have Completed my B.E Computers Science.Lokking for a job.I am interested in VC++ manju

            1 Reply Last reply
            0
            • M manju 123

              Hi all. I am trying to open Xml file using parser.. I am using MSXML2.dll. When i debug It is throughing Exception in this line ///////////////////////////// EVAL_HR(objDOMDoc.CreateInstance("Msxml2.DOMDocument.2.0")); ///////////////////////// In this line i am getting Error... when I used MSXML4.dll..It is showing error "Cannot open MSXML4.dll.. any suggestions. Here is the code.. ////////////////////////////////

              #include "stdafx.h"

              #include "stdio.h"
              #import "msxml4.dll"
              using namespace MSXML2;
              inline void EVAL_HR( HRESULT _hr )
              { if FAILED(_hr) throw(_hr); }

              int main(int argc, char* argv[])
              {
              try
              {
              IXMLDOMDocumentPtr objDOMDoc;

              	EVAL\_HR(CoInitialize(NULL)); 
              	EVAL\_HR(objDOMDoc.CreateInstance(\_\_uuidof(MSXML2::DOMDocument40)));
              	\_variant\_t varXml("C:\\\\book.xml");
              	\_variant\_t varOut((bool)TRUE);
              
              	objDOMDoc->async = false;
              	varOut = objDOMDoc->load(varXml);
              	
              	if ((bool)varOut == FALSE)
              	 throw(0);
              	
              	printf(\_bstr\_t(objDOMDoc->xml)) ;
              	printf("\\n\\nPress ENTER to continue...\\n");
              	getchar();
              	//return 0;
              }
              
              catch(...)
              {
              	printf("Exception occurred");
              	printf("\\n\\nPress ENTER to continue...\\n");
              	getchar();
              	return -1;
              }
              
              try
              {
              	
              	MSXML2::IXMLDOMProcessingInstructionPtr pPI = NULL;
              	MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
              	MSXML2::IXMLDOMNodePtr pNode = NULL;
              	MSXML2::IXMLDOMNodeListPtr pXMLDomNodeList = NULL;
              	MSXML2::IXMLDOMNodePtr pRootNode= NULL; 
              
              
              	EVAL\_HR(CoInitialize(NULL));
              		
              	//	Create MSXML DOM object
              	EVAL\_HR(pXMLDoc.CreateInstance(("Msxml2.DOMDocument.4.0")));
              	
              	//	Step 1: Creating the Processing Instruction
              	
              	pPI = pXMLDoc->createProcessingInstruction
              		("xml", "version='1.0' encoding='UTF-8'");
              
              	\_variant\_t vNullVal;
              	vNullVal.vt = VT\_NULL;
              	pXMLDoc->insertBefore(pPI, vNullVal);
              
              	//	---------------------------------------------
              	//	Step 2: Creating the Root Element
              	
              	\_variant\_t varNodeType((short)MSXML2::NODE\_ELEMENT);
              
              	pRootNode= pXMLDoc->createNode(varNodeType, 
              		("Root"),(""));
              	pXMLDoc->appendChild(pRootNode);
              
              	//	------------------------------------------
              	//	Step 3: Creating Attribute Node
              	//MSXML2::IXMLDOMNodePtr pAttNode= NULL; 
              	MSXML2::IXMLDOMNodePtr pAttNode= NULL; 
              	//pAttNode = pRootNode->appendChild(pXMLDoc->removeChild("attribute"));
              	
              	
              	//	Step 4: Creating attribute name element
              	MSXML2::IXMLDOMAttributePtr pattIdAttr = NULL;
              	pattIdAttr
              
              M Offline
              M Offline
              mohit_1082
              wrote on last edited by
              #6

              // 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]->

              1 Reply Last reply
              0
              Reply
              • Reply as topic
              Log in to reply
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes


              • Login

              • Don't have an account? Register

              • Login or register to search.
              • First post
                Last post
              0
              • Categories
              • Recent
              • Tags
              • Popular
              • World
              • Users
              • Groups