<?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文件里 

解决方案 »

  1.   

    用VC 6.0实现。我有一个例子。但是我这个比较复杂。AfxEnableControlContainer();
        ::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");
      

  2.   

    从XML读出来,操做,再写回XML 读出来可以了。写文件。有点问题。
      

  3.   

    不会写这么复杂的XML不知道。怎么在节点下再建一个有子节点的节点。
      

  4.   

    appendChild一层层建下去,你这个不复杂的。
      

  5.   

    嫌麻烦的话,就去下载个CMarkUP用用
      

  6.   

    我试了,新的appendChild会覆盖 
      

  7.   


    // 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;
    }