<?xml version="1.0" encoding="UTF-8"?><Licence_Service>
<Version_1>
<Version>1.0.0</Version>
</Version_1>
<SeriesNo_1>
<SeriesNo>TH123456</SeriesNo>
</SeriesNo_1>
<Licence_Commands>
<after_server_bootup index="1">
<interval>N/A</interval>
</after_server_bootup>
</Licence_Commands>
</Licence_Service>要用程序把上面的内容写到XML文件里
<Version_1>
<Version>1.0.0</Version>
</Version_1>
<SeriesNo_1>
<SeriesNo>TH123456</SeriesNo>
</SeriesNo_1>
<Licence_Commands>
<after_server_bootup index="1">
<interval>N/A</interval>
</after_server_bootup>
</Licence_Commands>
</Licence_Service>要用程序把上面的内容写到XML文件里
::AfxOleInit(); ::CoInitialize(NULL); xml::IXMLDOMDocumentPtr pDoc1;
xml::IXMLDOMElementPtr xmlRoot;
xml::IXMLDOMNodePtr xmlNode;
HRESULT hr1 = pDoc1.CreateInstance(_uuidof(xml::DOMDocument));
if(!SUCCEEDED(hr1))
{
AfxMessageBox("无法创建DM对象!");
return 0;
} xmlRoot = pDoc1->createElement("Book");
xmlRoot->setAttribute("id","NO.1");
xmlNode = pDoc1->createElement("Author");
xmlNode->Puttext("Tom");
xmlNode = pDoc1->createElement("Author");
xmlNode->Puttext("Tom1");
xmlRoot->appendChild(xmlNode);
xmlRoot->appendChild(xmlNode);
xmlNode = pDoc1->createElement("Title");
xmlNode->Puttext("C++");
xmlRoot->appendChild(xmlNode);
pDoc1->appendChild(xmlRoot);
pDoc1->save("c:\\1.xml");
// XmlEdit.cpp : Defines the entry point for the console application.
//#include "stdafx.h"
#import "msxml6.dll" rename_namespace("msxml")msxml::IXMLDOMDocumentPtr pXmlDoc;
msxml::IXMLDOMElementPtr pRootElem;
msxml::IXMLDOMElementPtr pCurElem;BOOL CreateXmlFile(LPCTSTR strXmlFileName);
BOOL XmlEdit(LPCTSTR strXmlFileName);
BOOL XmlSave(LPCTSTR strXmlFileName);int main(int argc, char *argv[])
{
FILE *fp;
fopen_s(&fp, _T(".\\test.xml"), "w");
fclose(fp);
XmlEdit(_T(".\\test.xml"));
XmlSave(_T(".\\test.xml"));
system("pause");
return 0;
}BOOL CreateXmlFile(LPCTSTR strXmlFileName)
{
VARIANT vt;
BOOL bRetVal = TRUE;
HRESULT hr = CoInitializeEx(NULL, 0); try
{
hr = CoCreateInstance(CLSID_DOMDocument, NULL, CLSCTX_INPROC_SERVER,
IID_IXMLDOMDocument, (LPVOID*)&pXmlDoc); if (FAILED(hr))
{
_com_issue_error(hr);
}
vt.vt = VT_BSTR;
vt.bstrVal = SysAllocString(_bstr_t(strXmlFileName)); SysFreeString(_bstr_t(strXmlFileName));
hr = pXmlDoc->load(vt); if (FAILED(hr))
{
_com_issue_error(hr);
}
}
catch (_com_error& ex)
{
bRetVal = FALSE;
printf("COM error occurred\n");
}
return bRetVal;
}BOOL XmlEdit(LPCTSTR strXmlFileName)
{
BOOL bRetVal = TRUE;
msxml::IXMLDOMElementPtr elem; try
{
if (CreateXmlFile(strXmlFileName))
{
while (pXmlDoc->hasChildNodes() == (VARIANT_BOOL)-1)
{
pXmlDoc->removeChild(pXmlDoc->firstChild);
}
pXmlDoc->appendChild(pXmlDoc->createProcessingInstruction(_T("xml"), _T("version='1.0' encoding='UTF-8'")));
pRootElem = pXmlDoc->createElement(_T("License_Service"));
pCurElem = pRootElem;
pXmlDoc->appendChild(pCurElem); elem = pXmlDoc->createElement(_T("Version_1"));
pCurElem->appendChild(elem);
pCurElem = elem; elem = pXmlDoc->createElement(_T("Version"));
elem->Puttext(_T("1.0.0"));
pCurElem->appendChild(elem); pCurElem = pCurElem->parentNode; elem = pXmlDoc->createElement(_T("SeriesNo_1"));
pCurElem->appendChild(elem);
pCurElem = elem; elem = pXmlDoc->createElement(_T("SeriesNo"));
elem->Puttext(_T("TH123456"));
pCurElem->appendChild(elem); pCurElem = pCurElem->parentNode; elem = pXmlDoc->createElement(_T("License_Command"));
pCurElem->appendChild(elem);
pCurElem = elem; elem = pXmlDoc->createElement(_T("after_server_bootup"));
elem->setAttribute(_T("index"), 1);
pCurElem->appendChild(elem);
pCurElem = elem; elem = pXmlDoc->createElement(_T("interval"));
elem->Puttext(_T("N/A"));
pCurElem->appendChild(elem); pCurElem = pRootElem;
}
else
{
bRetVal = FALSE;
}
}
catch (_com_error& ex)
{
bRetVal = FALSE;
printf("COM error occurred\n");
} return bRetVal;
}BOOL XmlSave(LPCTSTR strXmlFileName)
{
BOOL bRetVal = FALSE;
HRESULT hr = CoInitializeEx(NULL, 0); try
{
hr = pXmlDoc->save(strXmlFileName);
if (SUCCEEDED(hr))
{
bRetVal = TRUE;
}
else
{
_com_issue_error(hr);
}
}
catch (_com_error& ex)
{
printf("COM error occurred\n");
}
return bRetVal;
}