参考:http://blog.csdn.net/L_Andy/article/details/40615517

tinyxml官网:

http://www.grinninglizard.com/tinyxml/

官方文档:

http://www.grinninglizard.com/tinyxmldocs/index.html

github上文件下载地址:
https://sourceforge.net/projects/tinyxml/

TinyXML类:


TiXmlBase:整个TinyXML模型的基类。
TiXmlAttribute:对应于XML中的元素的属性。
TiXmlNode:对应于DOM结构中的节点。
TiXmlComment:对应于XML中的注释。<!--XXXXX.-->
TiXmlDeclaration:对应于XML中的申明部分,即<?versiong="1.0" ?>。
TiXmlDocument:对应于XML的整个文档。
TiXmlElement:对应于XML的元素。
TiXmlText:对应于XML的文字部分。
TiXmlUnknown:对应于XML的未知部分。
TiXmlHandler:定义了针对XML的一些操作。

使用:

XML:

<?xml version="1.0" encoding="UTF-8"?>
<phonebook>
<!--one item behalfs one contacted person.-->
<item>
<name>miaomaio</name>
<addr>Shaanxi Xi'an</addr>
<tel>13759911917</tel>
<email>miaomiao@home.com</email>
</item>
<item>
<name>gougou</name>
<addr>Liaoning Shenyang</addr>
<tel>15840330481</tel>
<email>gougou@home.com</email>
</item>
<!--more contacted persons.-->
</phonebook>

C++:

//______________________________________________________________________
// Read information from xml file. // define xml file path, as follow , we use relative path,
// but you can use absolute path also.
const char* filepath = "phonebookdata.xml";
TiXmlDocument doc(filepath);
bool loadOkay = doc.LoadFile();
// faile to load 'phonebookdata.xml'.
if (!loadOkay) {
printf( "Could not load test file %s. Error='%s'. Exiting.\n", filepath,doc.ErrorDesc() );
exit( );
} // get dom root of 'phonebookdata.xml', here root should be 'phonebook'.
TiXmlElement* root = doc.RootElement(); printf("_______________________________________\n\n");
printf(" contacted person information \n\n");
// trace every items below root.
for( TiXmlNode* item = root->FirstChild( "item" );
item;
item = item->NextSibling( "item" ) ) {
printf("_______________________________________\n"); // read name.
TiXmlNode* child = item->FirstChild();
const char* name = child->ToElement()->GetText();
if (name) {
printf("name:%s\n",name);
} else {
printf("name:\n");
} // read address.
child = item->IterateChildren(child);
const char* addr = child->ToElement()->GetText();
if (addr) {
printf("addr:%s\n",addr);
} else {
printf("addr:\n");
} // read telephone no.
child = item->IterateChildren(child);
const char* tel = child->ToElement()->GetText();
if (tel) {
printf("tel:%s\n",tel);
} else {
printf("tel:\n");
} // read e-mail.
child = item->IterateChildren(child);
const char* email = child->ToElement()->GetText();
if(email) {
printf("email:%s\n",email);
} else {
printf("email:\n");
} printf("\n"); }
//______________________________________________________________________ //______________________________________________________________________
// Add information to xml file and save it.
TiXmlElement* writeRoot = doc.RootElement();
TiXmlNode* newNode = new TiXmlElement("item"); const TiXmlNode* name4NewNode = new TiXmlElement("name");
newNode->InsertEndChild(*name4NewNode)->InsertEndChild(TiXmlText("pipi")); const TiXmlNode* addr4NewNode = new TiXmlElement("addr");
newNode->InsertEndChild(*addr4NewNode)->InsertEndChild(TiXmlText("Shaanxi Xianyang")); const TiXmlNode* tel4NewNode = new TiXmlElement("tel");
newNode->InsertEndChild(*tel4NewNode)->InsertEndChild(TiXmlText("")); const TiXmlNode* email4NewNode = new TiXmlElement("email");
newNode->InsertEndChild(*email4NewNode)->InsertEndChild(TiXmlText("pipi@home.com")); writeRoot->InsertEndChild(*newNode);
doc.SaveFile();
//______________________________________________________________________

[原][库][c++]tinyxml使用小结的更多相关文章

  1. TinyXML用法小结

    TinyXML用法小结 1.      介绍 Tinyxml的官方网址:http://www.grinninglizard.com 官方介绍文档:http://www.grinninglizard.c ...

  2. TinyXML用法小结2

    参考:http://www.cnblogs.com/hgwang/p/5833638.html TinyXML用法小结 1.      介绍 Tinyxml的官方网址:http://www.grinn ...

  3. [原][源码][tinyxml][opencv]按照规格剪切所有的图片

    源码: #include <iostream> #include <fstream> #include <opencv2/core/core.hpp> #inclu ...

  4. [库][c++]tinyxml2使用小结

    参考:http://blog.csdn.net/educast/article/details/12908455 1.配置TinyXML2 去这里把项目弄下来,然后解压,我们之需要里面的tinyxml ...

  5. Android 屏幕适配(二)增强版百分比布局库(percent-support-lib)

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46767825: 本文出自:[张鸿洋的博客] 一 概述 上周一我们发布了Andr ...

  6. rpmdb出问题,重建rpmdb库

    1.备份原库 tar cvzf rpmdb-backup.tar.gz /var/lib/rpm 2.删除rpmdb库 rm -f /var/lib/rpm/__db.00* 3.重建库 rpm -- ...

  7. (原)C++解析XML生成类对象_v1.0 函数指针

    要写一个xml解析,解析后获得到的数据变成各个类的对象. 解析有现成的库,使用tinyxml,但是解析出来的类库如何变成各个类的对象, 例如一下这个xml, <musics> <mu ...

  8. 开源TinyXML 最简单的新手教程

    TinyXML它是基于一个非常受欢迎的现在DOM型号XML解析器,简单易用且小巧玲珑,很适合存储简单数据.配置文件. 该项目属于开源项目,在sourceforge上边的链接是:http://sourc ...

  9. Android 增强版百分比布局库 为了适配而扩展

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/46767825: 本文出自:[张鸿洋的博客] 一 概述 上周一我们发布了Andr ...

随机推荐

  1. BCB 串口控件的使用 TComm

    昨天工作用到了串口通信,MMP的,昨天懵逼了一下午,今天终于整通了,身为菜鸟,大师们是不懂这些心痛的. 进入主题:使用BCB提供的控件TComm编程方便且简单,TComm位于System分类里面.   ...

  2. SQL查询遍历数据方法一 [ 临时表 + While循环]

    以下以SQL Server 2000中的NorthWind数据库中的Customers表为例, 用 临时表 + While循环 的方法, 对Customers表中的CompanyName列进行遍历 c ...

  3. 20155222 2016-2017-2 《Java程序设计》第8周学习总结

    20155222 2016-2017-2 <Java程序设计>第8周学习总结 教材学习内容总结 Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从J ...

  4. PLSQL入门:cursor传参,loop fetch使用,if使用,单引号字符表示

    1.cursor传入参数 定义:cursor [cursor变量名称]([参数名称] [参数类型]) IS [SQL语句,可以使用传入参数] 例子:    cursor moTypeNames(dom ...

  5. Linux基础命令---zcat

    zcat 解压有gzip压缩的文件,将解压结果送到标准输出. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法       z ...

  6. golang debug调试

    1. debug by gdb: office doc download the runtime-gdb file. $ wget -q -O - https://golang.org/src/run ...

  7. 20145322何志威 Exp7 网络欺诈技术防范

    20145322何志威 Exp7 网络欺诈技术防范 一 实践过程记录 简单应用SET工具建立冒名网站 1 确保kali和靶机能ping通: 2 为了使得apache开启后,靶机通过ip地址可以直接访问 ...

  8. 微信小程序——3、逻辑js文件

    逻辑层js文件 微信小程序前端进行了层次划分,分为逻辑层和视图层.逻辑层实现对数据的加工和处理.与HTML页面相似,逻辑层使用JavaScript编写.逻辑层将数据处理后发送至视图层,同时接受视图层的 ...

  9. 20135234mqy-——信息安全系统设计基础第九周学习总结

    第十章 系统级I/O 10.1 Unix I/O 一个Unix文就是一个m个字节的序列 Unix:将设备映射为文件的方式,允许Unix内核引出一个简单低级的应用接口 能够使得所有输入输出都能以一种统一 ...

  10. 在一个activity中销毁指定activity

    通过静态变量的方法: 1.在Aactivity中设置一个Activity静态变量 static Activity activity; 2.在onCreate中: activity=this: 3.在B ...