c/c++语言开发共享C++生成和解析XML文件

1.xml 指可扩展标记语言(EXtensible Markup Language) 2.xml 是一种标记语言,类似html 3.xml 的设计宗旨是传输数据,而非显示数据 4.xml 标签没有被预定义。需要自行定义标签 XML与HTML区别 1.xml 不是 html 的替代。 2.xml 和 …

1.xml 指可扩展标记语言(extensible markup language)
2.xml 是一种标记语言,类似html
3.xml 的设计宗旨是传输数据,而非显示数据
4.xml 标签没有被预定义。需要自行定义标签

xml与html区别

1.xml 不是 html 的替代。
2.xml 和 html 为不同的目的而设计:
3.xml 被设计为传输和存储数据,其焦点是数据的内容。
4.html 被设计用来显示数据,其焦点是数据的外观。
5.html 旨在显示信息,而 xml 旨在传输信息。

第三方库

xml第三方解析库,选用tinyxml,tinyxml也是一个开源的解析xml解析库,使用简单正如其名,用于c++开发,支持windows和linux。tinyxml通过dom模型遍历和分析xml。
官网地址:

生成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如下:

C++生成和解析XML文件

解析xml文件

    tixmldocument xmldocument;     if (!xmldocument.loadfile("woniu.xml"))     {         return -1;     }       //根节点     tixmlelement* xmlroot = xmldocument.rootelement();     if (xmlroot == null)     {         return -1;     }       //获取子节点信息1     tixmlelement* xmlnode1name = xmlroot->firstchildelement("name");     const char* node1name = xmlnode1name->gettext();     const char* node1attid = xmlnode1name->attribute("id");       //获取子节点信息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();

关注下面公众号,回复"101"获取源码
C++生成和解析XML文件

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/601363.html

(0)
上一篇 2021年5月9日
下一篇 2021年5月9日

精彩推荐