欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++生成和解析XML文件的講解

 更新時間:2018年12月21日 14:39:40   作者:蝸牛201  
今天小編就為大家分享一篇關于C++生成和解析XML文件的講解,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

概述

  • 1.xml 指可擴展標記語言(EXtensible Markup Language)
  • 2.xml 是一種標記語言,類似html
  • 3.xml 的設計宗旨是傳輸數據,而非顯示數據
  • 4.xml 標簽沒有被預定義。需要自行定義標簽

XML與HTML區(qū)別

  • 1.xml 不是 html 的替代。
  • 2.xml 和 html 為不同的目的而設計:
  • 3.xml 被設計為傳輸和存儲數據,其焦點是數據的內容。
  • 4.html 被設計用來顯示數據,其焦點是數據的外觀。
  • 5.html 旨在顯示信息,而 xml 旨在傳輸信息。

第三方庫

XML第三方解析庫,選用TinyXML,TinyXML也是一個開源的解析XML解析庫,使用簡單正如其名,用于C++開發(fā),支持Windows和Linux。TinyXML通過DOM模型遍歷和分析XML。

官網地址:http://www.grinninglizard.com/tinyxml/

生成XML文件

 TiXmlDocument xmlDocument;
 // 添加XML聲明
 xmlDocument.LinkEndChild(new TiXmlDeclaration( "1.0", "GBK", "" ));
 // 添加根元素
 TiXmlElement * xmlRoot = new TiXmlElement("root");
 xmlDocument.LinkEndChild(xmlRoot);
 //根元素下添加子元素1
 TiXmlElement* xmlChild1 = new TiXmlElement("name");
 xmlRoot->LinkEndChild(xmlChild1);
 xmlChild1->LinkEndChild(new TiXmlText("woniu"));
 xmlChild1->SetAttribute("id", "0001");//設置屬性
 //根元素下添加子元素2
 TiXmlElement* xmlChild2 = new TiXmlElement("Student");
 xmlRoot->LinkEndChild(xmlChild2);
 TiXmlElement* xmlChild2_01 = new TiXmlElement("name");
 xmlChild2->LinkEndChild(xmlChild2_01);
 xmlChild2_01->LinkEndChild(new TiXmlText("woniu201"));
 TiXmlElement* xmlChild2_02 = new TiXmlElement("classes");
 xmlChild2->LinkEndChild(xmlChild2_02);
 xmlChild2_02->LinkEndChild(new TiXmlText("86"));
 //保存xml文件
 xmlDocument.SaveFile("woniu.xml");

生成XML如下:

解析XML文件

 TiXmlDocument xmlDocument;
 if (!xmlDocument.LoadFile("woniu.xml"))
 {
 return -1;
 }
 //根節(jié)點
 TiXmlElement* xmlRoot = xmlDocument.RootElement();
 if (xmlRoot == NULL)
 {
 return -1;
 }
 //獲取子節(jié)點信息1
 TiXmlElement* xmlNode1Name = xmlRoot->FirstChildElement("name");
 const char* node1Name = xmlNode1Name->GetText();
 const char* node1AttId = xmlNode1Name->Attribute("id");
 //獲取子節(jié)點信息2
 TiXmlElement* xmlNode2Stu = xmlRoot->FirstChildElement("Student");
 TiXmlElement* xmlNode2_name = xmlNode2Stu->FirstChildElement("name");
 TiXmlElement* xmlname2_classes = xmlNode2Stu->FirstChildElement("classes");
 const char* node2Name = xmlNode2_name->GetText();
 const char* node2Classes = xmlname2_classes->GetText();

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • C語言深入探究函數的溯源

    C語言深入探究函數的溯源

    函數是一組一起執(zhí)行一個任務的語句。每個 C 程序都至少有一個函數,即主函數 main() ,所有簡單的程序都可以定義其他額外的函數
    2022-04-04
  • C++關于類結構體大小和構造順序,析構順序的測試詳解

    C++關于類結構體大小和構造順序,析構順序的測試詳解

    這篇文章主要介紹了C++類結構體大小和構造順序,析構順序的測試,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 淺析C++中模板的那點事

    淺析C++中模板的那點事

    C++中的模板可分為函數模板和類模板,而把函數模板的具體化稱為模板函數,把類模板的具體化成為模板類。下面讓我們分別看看什么是函數模板和類模板吧
    2013-09-09
  • C語言小游戲之小熊跳板功能的實現(xiàn)

    C語言小游戲之小熊跳板功能的實現(xiàn)

    這篇文章主要介紹了C語言小游戲之小熊跳板功能的實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • C++ QT智能指針的使用詳解

    C++ QT智能指針的使用詳解

    這篇文章主要介紹了C++ QT智能指針的使用,Qt是一個跨平臺的C++框架,主要用來開發(fā)圖形用戶界面程序,也可以開發(fā)不帶界面的命令行程序,下面我們來了解QT智能指針是如何使用的
    2023-12-12
  • 舉例剖析C++中引用的本質及引用作函數參數的使用

    舉例剖析C++中引用的本質及引用作函數參數的使用

    這篇文章主要介紹了C++中引用的本質及引用作函數參數的使用,講解了函數返回值是引用的情況等一些難點,需要的朋友可以參考下
    2016-03-03
  • C語言例題之輸出1000以內的所有完數

    C語言例題之輸出1000以內的所有完數

    完數是一些特殊的自然數,它所有的真因子(即除了自身以外的約數)的和(即因子函數),恰好等于它本身,如果一個數恰好等于它的因子之和,則稱該數為“完數”,這篇文章主要給大家介紹了關于C語言例題之輸出1000以內的所有完數的相關資料,需要的朋友可以參考下
    2022-11-11
  • C++條件語句和條件運算符的使用方法講解

    C++條件語句和條件運算符的使用方法講解

    這篇文章主要介紹了C++條件語句和條件運算符的使用方法講解,是C++入門學習中的基礎知識,需要的朋友可以參考下
    2015-09-09
  • Linux/C++多線程實例學習十字路口車輛調度

    Linux/C++多線程實例學習十字路口車輛調度

    這篇文章主要為大家介紹了Linux/C++多線程實例學習十字路口車輛調度示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • c語言輕松實現(xiàn)猜數字小游戲

    c語言輕松實現(xiàn)猜數字小游戲

    猜數字是興起于英國的益智類小游戲,起源于20世紀中期,一般由兩個人或多人玩,也可以由一個人和電腦玩。游戲規(guī)則為一方出數字,一方猜,今天我們來用C實現(xiàn)這個游戲案例
    2022-04-04

最新評論