写XML基本操作
void CT1Dlg::OnBnClickedOk()
{
CoInitialize(0);
CComBSTR indata = NULL;
BSTR outdata;
_bstr_t XmlFile = L"D:\\result.xml"; // xml文件
MSXML2::IXMLDOMDocumentPtr pDoc = NULL; // xml文档
MSXML2::IXMLDOMProcessingInstructionPtr pProInstruction = NULL; // xml声明
MSXML2::IXMLDOMCommentPtr pComment = NULL; // 注释
MSXML2::IXMLDOMElementPtr pRootElement = NULL, pData,pElement = NULL; // 根节点(元素)
MSXML2::IXMLDOMNodePtr pNode = NULL, pNode1 = NULL, pNode2 = NULL; // 节点
MSXML2::IXMLDOMAttributePtr pAttrNode = NULL; // 属性
HRESULT hr = pDoc.CreateInstance("Msxml2.DOMDocument.4.0"); //
if (FAILED(hr))
{
printf("无法创建DOMDocument40对象,请检查是否安装并初始化了MsXml Parser库!");
return ;
}
// (1)创建xml文档声明(或insertBefore根节点)
pProInstruction = pDoc->createProcessingInstruction(L"xml", L"version=\"1.0\" encoding=\"utf-8\"");
pDoc->appendChild((MSXML2::IXMLDOMNode*)pProInstruction);
// (2)创建根节点<result>
pRootElement = pDoc->createElement(L"result");
pDoc->PutRefdocumentElement(pRootElement);
pElement = pDoc->createElement(L"code");
pElement->put_text(L"0");
pRootElement->appendChild((MSXML2::IXMLDOMNode*)pElement);
pElement = pDoc->createElement(L"message");
pElement->put_text(L"操作成功!");
pRootElement->appendChild((MSXML2::IXMLDOMNode*)pElement);
pElement = pDoc->createElement(L"rowcount");
pElement->put_text(L"1");
pRootElement->appendChild((MSXML2::IXMLDOMNode*)pElement);
//第 1 行数据
pData = pDoc->createElement(L"rowdata");
pRootElement->appendChild((MSXML2::IXMLDOMNode*)pData);
pElement = pDoc->createNode((_variant_t)(long)MSXML2::NODE_ELEMENT, L"appcode", L"");
pNode = pDoc->createCDATASection(L"1001 01" );
pElement->appendChild(pNode);
pData->appendChild(pElement); // 字段
//第 2 行数据
pData = pDoc->createElement(L"rowdata");
pRootElement->appendChild((MSXML2::IXMLDOMNode*)pData);
pElement = pDoc->createNode((_variant_t)(long)MSXML2::NODE_ELEMENT, L"appcode", L"");
pNode = pDoc->createCDATASection((_bstr_t)"1002 01" );
pElement->appendChild(pNode);
pData->appendChild(pElement); // 字段
pDoc->save(XmlFile);
pDoc.Release() ;
CoUninitialize();
}
生成的文件样本
<?xml version="1.0" encoding="utf-8"?>
<result>
<code>0</code>
<message>操作成功!</message>
<rowcount>1</rowcount>
<rowdata>
<appcode><![CDATA[1001]]></appcode>
<appname><![CDATA[test.exe]]></appname>
<apptitle><![CDATA[测试系统]]></apptitle>
<version><![CDATA[10]]></version>
<ftpfolder><![CDATA[/update/test/]]></ftpfolder>
<subfolder><![CDATA[2016.05.01.17.58.48]]></subfolder>
<url><![CDATA[]]></url>
<lastupdate><![CDATA[]]></lastupdate>
<appargs><![CDATA[]]></appargs>
<remark><![CDATA[
]]></remark>
<srcfolder><![CDATA[/source/test/]]></srcfolder>
<srcsubfolder><![CDATA[2016.05.01.17.58.48]]></srcsubfolder>
<dirlist><![CDATA[\pic;]]></dirlist>
<filelist><![CDATA[config.ini;update32.ini;]]></filelist>
<UPTYPE><![CDATA[.pbd;]]></UPTYPE>
<SRCTYPE><![CDATA[.pbd;.pbl;.pbw;]]></SRCTYPE>
<UCODE><![CDATA[0]]></UCODE>
</rowdata>
</result>