timyxml的简单使用
来源:互联网 发布:广东11选5当前遗漏数据 编辑:程序博客网 时间:2024/06/06 18:23
#include <iostream>#include <string>#include <cstdio>#include "tinyxml.h"using namespace std;int main(){TiXmlPrinter printer;string filepath = "test.xml";TiXmlDocument doc(filepath.c_str());bool loadOkay = doc.LoadFile();if (!loadOkay){printf( "Could not load test file %s. Error='%s'. Exiting.\n", filepath,doc.ErrorDesc() );exit( 1 );}doc.Accept(&printer);cout << printer.CStr() << std::endl;TiXmlElement* root = doc.RootElement();for( TiXmlNode* item = root->FirstChild("item"); item; item = item->NextSibling("item")) {printf("_______________________________________\n");TiXmlNode* child = item->FirstChild();string name = child->ToElement()->GetText();if (!name.empty()) {cout << "name = " << name << endl;} child = item->IterateChildren(child);string addr = child->ToElement()->GetText();if (!addr.empty()){cout << "address = " << name << endl;} child = item->IterateChildren(child);string tel = child->ToElement()->GetText();if (!tel.empty()){cout << "tel = " << tel << endl; }child = item->IterateChildren(child);string email = child->ToElement()->GetText();if(!email.empty()){cout << "email = " << email << endl;} cout << endl;}return 0;}
test.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.--> <item> <name>pipi</name> <addr>Shaanxi Xianyang</addr> <tel>02937310627</tel> <email>pipi@home.com</email> </item></phonebook>
输出:
<?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.--> <item> <name>pipi</name> <addr>Shaanxi Xianyang</addr> <tel>02937310627</tel> <email>pipi@home.com</email> </item></phonebook>_______________________________________name = miaomaioaddress = miaomaiotel = 13759911917email = miaomiao@home.com_______________________________________name = gougouaddress = gougoutel = 15840330481email = gougou@home.com_______________________________________name = pipiaddress = pipitel = 02937310627email = pipi@home.com请按任意键继续. . .
<?xml version="1.0" encoding="GB2312" ?><Class name="计算机软件班"> <Students> <student name="张三" studentNo="13031001" sex="男" age="22"> <phone>88208888</phone> <address>西安市太白南路二号</address> </student> <student name="李四" studentNo="13031002" sex="男" age="20"> <phone>88206666</phone> <address>西安市光华路</address> </student> </Students> </Class>
#include <iostream>#include <string>#include "tinyxml.h"#pragma comment(lib, "tinyxml.lib")using std::string;int main(){TiXmlPrinter printer;TiXmlDocument* myDocument = new TiXmlDocument();myDocument->LoadFile("test.xml");myDocument->Accept(&printer);//std::cout << printer.CStr() << std::endl;TiXmlElement* rootElement = myDocument->RootElement(); //Classstd::cout << rootElement->Value() << ": ";std::cout << rootElement->FirstAttribute()->Value() << std::endl;std ::cout << "-----------------------------------------------" << std::endl;TiXmlElement* studentsElement = rootElement->FirstChildElement(); //StudentsTiXmlElement* studentElement = studentsElement->FirstChildElement(); //Studentwhile ( studentElement ) {TiXmlAttribute* attributeOfStudent = studentElement->FirstAttribute(); //获得student的name属性while ( attributeOfStudent ) {std::cout << attributeOfStudent->Name() << " : " << attributeOfStudent->Value() << std::endl;attributeOfStudent = attributeOfStudent->Next();}TiXmlElement* phoneElement = studentElement->FirstChildElement();//获得student的phone元素std::cout << "phone" << " : " << phoneElement->GetText() << std::endl;TiXmlElement* addressElement = phoneElement->NextSiblingElement();std::cout << "address" << " : " << addressElement->GetText() << std::endl;std ::cout << "-----------------------------------------------" << std::endl;studentElement = studentElement->NextSiblingElement();}return 0;}
输出:
Class: 计算机软件班-----------------------------------------------name : 张三studentNo : 13031001sex : 男age : 22phone : 88208888address : 西安市太白南路二号-----------------------------------------------name : 李四studentNo : 13031002sex : 男age : 20phone : 88206666address : 西安市光华路-----------------------------------------------请按任意键继续. . .
- timyxml的简单使用
- 【语言-C++】xml格式的读取和保存-TimyXml
- 简单易懂的使用
- ant的简单使用
- Log4j的简单使用
- TCPDUMP的简单使用
- IComparer的简单使用
- TreeView的简单使用
- CListCtrl的简单使用
- Rose的简单使用
- OpenSSL的简单使用
- CInternetSession的简单使用
- 标签的简单使用
- 触发器的简单使用
- nekohtml的简单使用
- FileUpload的简单使用
- JFreeChart的简单使用
- JMX的简单使用
- ubuntu 快速部署openvpn
- SSH 登录ubuntu server在命令行中按tab键时总是提示LC_CTYPE 相关信息的解决办法
- 不由XML Layout 文件而由程序动态生成AlertDialog 及在其中附加更多UI 控件
- R.java 文件不能生成原因探究
- Winpcap的安装使用方法
- timyxml的简单使用
- struts2标签详解
- Android - Layout 也是 View
- centos ve12.05启动vm失败
- 解决在调用第三方dll时因为runtime library不一致导致调用失败的方法
- C++的函数重载
- SWT中调用SetLayout 遇到ClassCastException: GridData cannot be cast to RowData 问题调查
- struts标签小结
- jQuery对象与dom对象的转换