博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[原][库][c++]tinyxml使用小结
阅读量:6082 次
发布时间:2019-06-20

本文共 3652 字,大约阅读时间需要 12 分钟。

参考:

 

tinyxml官网:

官方文档:

github上文件下载地址:

 

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:

miaomaio
Shaanxi Xi'an
13759911917
miaomiao@home.com
gougou
Liaoning Shenyang
15840330481
gougou@home.com

 

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( 1 );  }    // 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("02937310627"));    const TiXmlNode* email4NewNode = new TiXmlElement("email");  newNode->InsertEndChild(*email4NewNode)->InsertEndChild(TiXmlText("pipi@home.com"));    writeRoot->InsertEndChild(*newNode);  doc.SaveFile();  //______________________________________________________________________

 

转载地址:http://zkkwa.baihongyu.com/

你可能感兴趣的文章
Angular js http请求发送和jquery的ajax一样的数据设置方式
查看>>
Andrid在一个程序中启动另一个程序
查看>>
mysql++ (Tserver安装问题)
查看>>
李开复给大支招 大学生创业有五忌
查看>>
大学学习有感
查看>>
CSS固定DIV,导航条顶部固定fixed(兼容IE6)
查看>>
docker 容器创建参数错误记录
查看>>
python3 笔记
查看>>
kali linux下的网络配置
查看>>
我的友情链接
查看>>
Windows系统下的TCP参数优化(注册表\TCPIP\Parameters)
查看>>
资源共享开源站
查看>>
Open×××中TAP-win32d的net30问题
查看>>
Linux常用命令总结之(九)tail
查看>>
【Glassfish调查】获取客户端Addr和Host
查看>>
2011年山东济南java开发定向就业班招生
查看>>
磁盘格式化与管理知识点总结
查看>>
如何在ASA防火墙上实现ipsec ***
查看>>
前端基础---jquery练习
查看>>
保持健康,远离疾病
查看>>