乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C++ XML文件例子

       趙靜Library 2014-05-15
      一、
      1。寫一個(gè)xml文件
       
       <?xml version="1.0" encoding="utf-8" ?> 
      - <root>
      - <user id="101">
      <name>abc</name> 
      <password>abc</password> 
      </user>
      - <user id="102">
      <name>ccc</name> 
      <password>ccc</password> 
      </user>
      </root> 
      2。新建一個(gè)vc++2005工程 可以是對(duì)話框工程 因?yàn)橹皇桥e例說明
      (1)在對(duì)話框的.H文件添加
      #import "msxml3.dll"
      using namespace MSXML2;
      (2)在初始化函數(shù)里添加
      try
      {
      CoInitialize(NULL);//初始化COM組件

      MSXML2::IXMLDOMDocumentPtr pDoc;
      HRESULT hr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument)) ;//創(chuàng)建一個(gè)COM進(jìn)程

      if(!SUCCEEDED(hr))
      {
      AfxMessageBox(_T("FAILSE"),MB_OK,NULL);
      }
      pDoc->load("d:\\user.xml");//xml文件的地址 我放在D盤下了 也可以寫成相對(duì)地址
      MSXML2::IXMLDOMNodeListPtr pNodeList=NULL;//定義節(jié)點(diǎn)列表
      pNodeList=pDoc->selectNodes("root/user");//選擇節(jié)點(diǎn)
      MSXML2::IXMLDOMNodePtr pSubNode;
      CString strTemp;
      for(int i=0;i<(pNodeList->Getlength());i++)//判斷有幾個(gè)節(jié)點(diǎn)
      {
      pSubNode=pNodeList->nextNode()->selectSingleNode("name");
      _bstr_t strRequestType=pSubNode->Gettext();
      strTemp=strRequestType.operator char*();
      AfxMessageBox(strTemp,MB_OK,NULL);
      }
      }
      catch (...)
      {
      AfxMessageBox(_T("異常"));

      二、
      #include <msxml6.h>
      #include <comutil.h>
      #pragma comment(lib, "comsuppwd.lib")
      void CXmlSampleDlg::OnBnClickedButton1()//按鈕事件
      {
      CoInitialize(NULL);
      CComPtr<IXMLDOMDocument> spXmldoc;
      HRESULT hr = spXmldoc.CoCreateInstance(L"MSXML2.DOMDocument.6.0");

      if(SUCCEEDED(hr))
      {
      VARIANT_BOOL isSuccessFul;
      CComVariant varXmlFile(L"a.xml");

      spXmldoc->put_async(VARIANT_FALSE);
      HRESULT hr= spXmldoc->load(varXmlFile, &isSuccessFul);

      if(isSuccessFul==VARIANT_TRUE)
      {
      CComBSTR bstrXml;
      CComPtr<IXMLDOMElement> spRoot=NULL;
      CComPtr<IXMLDOMElement> spTheBook=NULL;
      CComPtr<IXMLDOMElement> spTheElem=NULL;
      CComPtr<IXMLDOMNode> spNewNode=NULL;

      hr = spXmldoc->get_documentElement(&spRoot);
      spRoot->get_xml(&bstrXml);
      AfxMessageBox(L"1, 原始的XML");
      AfxMessageBox(bstrXml);


      spXmldoc->createElement(L"book", &spTheBook);
      spXmldoc->createElement(L"name", &spTheElem);
      spTheElem->put_text(L"新書");
      spTheBook->appendChild(spTheElem, &spNewNode);
      spTheElem.Release();
      spNewNode.Release();

      spXmldoc->createElement(L"price", &spTheElem);
      spTheElem->put_text(L"20");
      spTheBook->appendChild(spTheElem, &spNewNode);
      spTheElem.Release();
      spNewNode.Release();

      spXmldoc->createElement(L"memo", &spTheElem);
      spTheElem->put_text(L"新書的更好看。");
      spTheBook->appendChild(spTheElem, &spNewNode);
      spNewNode.Release();
      spTheElem.Release();

      spRoot->appendChild(spTheBook, &spNewNode);
      spNewNode.Release();
      spTheBook.Release();

      spRoot->get_xml(&bstrXml);
      AfxMessageBox(L"2, 新建一本書完成");
      AfxMessageBox(bstrXml);
      ////---  新建一本書完成 ----


      ////---  下面對(duì)《哈里波特》做一些修改。 ----
      ////---  查詢找《哈里波特》----
      CComPtr<IXMLDOMNode> spTheNode=NULL;
      spRoot->selectSingleNode(L"/books/book[name='哈里波特']", &spTheNode);
      hr=spTheNode.QueryInterface(&spTheBook);
      spTheNode.Release();

      spTheBook->get_xml(&bstrXml);
      AfxMessageBox(L"3,《哈里波特》的XML");
      AfxMessageBox(bstrXml);

      ////---  此時(shí)修改這本書的價(jià)格 -----
      CComPtr<IXMLDOMNodeList> spNodeList=NULL;
      CComPtr<IXMLDOMNode> spListItem=NULL;
      spTheBook->get_childNodes(&spNodeList);
      spNodeList->get_item(1, &spListItem);
      spNodeList.Release();
      spListItem->put_text(L"15");

      ////---  另外還想加一個(gè)屬性id,值為B01 ----
      CComVariant varId(L"B01");
      spTheBook->setAttribute(L"id", varId);
      varId.Clear();

      spTheBook->get_xml(&bstrXml);
      spTheBook.Release();
      AfxMessageBox(L"4, 對(duì)《哈里波特》修改完成。");
      AfxMessageBox(bstrXml);
      ////---  對(duì)《哈里波特》修改完成。 ----


      ////---  要用id屬性刪除《三國(guó)演義》這本書  ----
      spRoot->selectSingleNode(L"/books/book[@id='B02']", &spTheNode);
      hr=spTheNode.QueryInterface(&spTheBook);
      spTheNode.Release();

      spTheBook->get_xml(&bstrXml);
      AfxMessageBox(L"5, 《三國(guó)演義》的XML");
      AfxMessageBox(bstrXml);

      CComPtr<IXMLDOMNode> spParentNode=NULL;
      spTheBook->get_parentNode(&spParentNode);
      spParentNode->removeChild(spTheBook, &spTheNode);
      spTheNode.Release();
      spParentNode.Release();
      spTheBook.Release();

      spRoot->get_xml(&bstrXml);
      AfxMessageBox(L"6, 刪除《三國(guó)演義》后的XML");
      AfxMessageBox(bstrXml);


      ////---  再將所有價(jià)格低于10的書刪除  ----
      spRoot->selectNodes(L"/books/book[price<10]", &spNodeList);
      CComQIPtr<IXMLDOMSelection> spSomeBooks=spNodeList;
      spNodeList.Release();

      spSomeBooks->removeAll();
      spSomeBooks.Release();

      spXmldoc->get_xml(&bstrXml);
      AfxMessageBox(L"7, 已經(jīng)刪除價(jià)格低于10的書");
      AfxMessageBox(bstrXml);

      spRoot.Release();
      bstrXml.Empty();

      //spXmldoc->save(varXmlFile); //保存xml。
      }
      varXmlFile.ClearToZero();
      }

      spXmldoc.Release();

      CoUninitialize();
      }


      <?xml version="1.0" encoding="UTF-8"?>
      <books>
       <book>
        <name>哈里波特</name>
        <price>10</price>
        <memo>這是一本很好看的書。</memo>
       </book>
       <book id="B02">
        <name>三國(guó)演義</name>
        <price>10</price>
        <memo>四大名著之一。</memo>
       </book>
       <book id="B03">
        <name>水滸</name>
        <price>6</price>
        <memo>四大名著之一。</memo>
       </book>
       <book id="B04">
        <name>紅樓</name>
        <price>5</price>
        <memo>四大名著之一。</memo>
       </book>
      </books>

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多