Hi,
A following code retutn exeption on loadXML function. What is wrong ?
#include <windows.h>
#import <msxml3.dll>
typedef MSXML2::IXMLDOMDocumentPtr
DocPtr;
typedef MSXML2::IXMLDOMNodePtr NodePtr;
void get_error(DocPtr doc)
{
MSXML2::IXMLDOMParseErrorP
tr pErr = doc->GetparseError();//par
seError;
if( pErr->GeterrorCode() != 0)
throw pErr->Getreason();
else
AfxMessageBox ("loaded successfuly");
}
//////////////////////////
//////////
///
void tform(char* c_args)
{
CoInitialize(NULL);
try
{
DocPtr xmlDoc(__uuidof(MSXML2::DO
MDocument)
);
//This loads the text that I want to transform
xmlDoc->load(c_args);
get_error(xmlDoc);
//This loads the XSLT transform
DocPtr xslDoc(__uuidof(MSXML2::DO
MDocument)
);
xslDoc->load("sam1.xsl");
get_error(xmlDoc);
//This transforms
DocPtr xmlDso(__uuidof(MSXML2::DO
MDocument)
);
NodePtr xmlroot = xmlDoc->GetdocumentElement
();
NodePtr xslroot = xslDoc->GetdocumentElement
();
_bstr_t str = xmlroot->transformNode(xsl
root) ;
// THERE IS FAULT OCCURE
xmlDso->loadXML(str);
get_error(xmlDso);
xmlDso->save("newFile.xml"
);
}
catch(char* lpstrErr) {
// Some error...
AfxMessageBox(lpstrErr );
} catch(...) {
// Unknown error...
AfxMessageBox("Unknown error..." );
}
CoUninitialize();
}
//////////////////////////
//////////
/
<?xml version="1.0" encoding="UTF-8"?>
<source>
<title>XSL</title>
<author>John Smith</author>
</source>
//////////////////////////
//////////
/////////
<xsl:stylesheet version = '1.0'
xmlns:xsl='
http://www.w3.org/1999/XSL/Transform'>
<xsl:template match="/">
<h1>
<xsl:value-of select="//title"/>
</h1>
<h2>
<xsl:value-of select="//author"/>
</h2>
</xsl:template>
</xsl:stylesheet>