tinyXML一款很优秀的操作C++类库,文件不大,但方法很丰富,和apache的Dom4j可以披靡啊!习惯了使用java类库的我看到这么丰富的c++类库,很高兴!它使用很简单,只需要拷贝几个文件到你的工程中,没有STL也可以编译运行。
/* * Main.cpp * * Created on: 2015-1-26 * Author: Administrator */ #includexml文件#include #include #include "tinystr.h" #include "tinyxml.h" using namespace std; int main() { 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(); // trace every items below root. for (TiXmlNode* item = root->FirstChild("item"); item; item = item->NextSibling("item")) { // 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"); } 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(); return 0; }
miaomaio Shaanxi Xi'an 13759911917 miaomiao@home.com gougou Liaoning Shenyang 15840330481 gougou@home.com pipi Shaanxi Xianyang 02937310627 pipi@home.com pipi Shaanxi Xianyang 02937310627 pipi@home.com
收藏的用户(0) X
正在加载信息~
推荐阅读
最新回复 (0)
站点信息
- 文章2303
- 用户1336
- 访客11128775
每日一句
Just hold to your dream and never give up.
坚持你的梦想,永不放弃。
坚持你的梦想,永不放弃。
【教程】win10 彻底卸载edge浏览器
Node.js框架之Egg.js
iOS项目允许使用http协议请求
Cocos2d-x 3.17.2和Android Studio环境搭建
鸿蒙Failure[INSTALL_PARSE_FAILED_USESDK_ERROR]
java.nio.ByteBuffer缓冲区简介
linux下C/C++网络编程基本:socket实现tcp和udp的例子
CreateProcessW要注意的细节问题
C/C++通过WMI和系统API函数获取系统硬件配置信息
Xposed框架的使用
Android自定义蜂窝布局
Java开发人员的7种最佳测试框架
C++11特性里面的thread
新会员