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)
站点信息
- 文章2281
- 用户1336
- 访客9581760
每日一句
Great hopes make great men.
伟大的理想造就伟大的人。
伟大的理想造就伟大的人。
- 使用MyBatis_Generator生成Dto、Dao、Mapping
- 解决vue动态生成el-table-column按钮点击事件
- Android Studio创建进程通信简单例子
- 简单利用Clover四叶草安装U盘安装黑苹果
- 为什么数据结构和算法很重要?
- 仙剑奇侠传3d回合-PC端辅助
- 谷歌Pixel正在开始起飞?
- 新手安装黑苹果OS X 10.11教程
- 通过HOOK技术破解Assembly-CSharp.dll
- How to Ungroup Icons on Windows 11 Taskbar With a Registry Hack (and 2 More Ways)
- NDK cmake报错:asm/types.h not found
- 【源码】Pixel Dungeon
- thinkpad t470p装黑苹果系统10.13.2
新会员