Cannot open XML File
-
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
-
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
-
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
-
You better write "MSXML2.DOMDocument.2.0" is MSXML4.dll correctly installed?
Greetings from Germany
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
-
You better write "MSXML2.DOMDocument.2.0" is MSXML4.dll correctly installed?
Greetings from Germany
-
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
// 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]->