为什么用XML接口来写xml还会出现不完整的元素?
蒋晟 2002-01-30 05:15:07 生成的文档:
<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<FLEXREPORT><PAGE/></FLEXREPORT>
代码:
BOOL CFlexReportDoc::SaveToXMLDocument(LPCTSTR lpszPathName)
{
CFlxRptPage pageDefault;
GetDefaultsPageSetting(pageDefault);//get default setting
//if setting==property,skip attribute
HRESULT hr ;
CXMLDOMDocument2 pXMLDOMDocument2;
//
// Create an empty XML document.
//
try{
if(!pXMLDOMDocument2.CreateDispatch("Msxml2.DOMDocument.4.0"){
AfxMessageBox("Unable to create XML parser object");
return FALSE;
}
pXMLDOMDocument2.SetAsync(FALSE);
TRACE("Xml:%s\n",pXMLDOMDocument2.GetXml());
//output:Xml:
CXMLDOMElement pXmlElement=pXMLDOMDocument2.createProcessingInstruction(
"xml","version='1.0' encoding='gb2312' standalone='yes'");
pXMLDOMDocument2.appendChild(pXmlElement);
TRACE("Xml:%s\n",pXMLDOMDocument2.GetXml());
//output:Xml:<?xml version="1.0" standalone="yes"?>
CXMLDOMElement pRootElement=pXMLDOMDocument2.createElement("FLEXREPORT");
pXMLDOMDocument2.appendChild(pRootElement);
TRACE("Xml:%s\n",pXMLDOMDocument2.GetXml());
//output:Xml:<?xml version="1.0" standalone="yes"?><FLEXREPORT/>
CXMLDOMElement pPageElement=pXMLDOMDocument2.createElement("PAGE");
pRootElement.appendChild(pPageElement);
TRACE("Xml:%s\n",pXMLDOMDocument2.GetXml());
//output:Xml:<?xml version="1.0" standalone="yes"?><FLEXREPORT><PAGE/></FLEXREPORT>
_variant_t varString = lpszPathName;
pXMLDOMDocument2.save(varString);
}
catch(COleDispatchException*e){
e->ReportError();
e->Delete();
}
return TRUE;
}