tinyxml的用法和实例
发布时间:2020-12-16 05:52:52 所属栏目:百科 来源:网络整理
导读:现在很多协议都用xml来设计,方便扩展,也具有兼容性。现在流行的json和gson就不说了,应用比较多的tinyxml也是很不错的。下面介绍下tinyxml的用法和实例。 使用tinyxml ,需要在工程中包含其 源码 ,并在头文件建立引用关系。下面是一个简单的例子,按照层
现在很多协议都用xml来设计,方便扩展,也具有兼容性。现在流行的json和gson就不说了,应用比较多的tinyxml也是很不错的。下面介绍下tinyxml的用法和实例。
使用tinyxml,需要在工程中包含其源码,并在头文件建立引用关系。下面是一个简单的例子,按照层次关系打印出xml文件。 代码如下: #include "stdafx.h" #include "targetver.h" #include "tinystr.h" #include "SystemCommon.h" #include "tinyxml.h" void ParseXML(TiXmlElement *Element); int _tmain(int argc,_TCHAR* argv[]) { char c[2048] = "<!-- This is a comment -->" "<?xml version="1.0" encoding="utf-8"?>" "<Class name="计算机软件班">计算机" "<Students>" "<student name="张三" studentNo="13031001" sex="男" age="22">" "<phone>88208888</phone>" "<ET name="de" ground = "ground">on the ground</ET>" "<et name = "et name" ball = "ball"/>" "<address>西安市太白南路二号</address>" "</student>" "<student name="李四" studentNo="13031002" sex="男" age="20">" "<phone>88206666</phone>" "<address>西安市光华路</address>" "</student>" "</Students>" "</Class>"; TiXmlDocument *myDocument = new TiXmlDocument(); //假设文件名是xml.xml myDocument->LoadFile("xml.xml",TIXML_ENCODING_UTF8); //myDocument->Parse(c,TIXML_ENCODING_UNKNOWN); TiXmlElement *rootElement = myDocument->RootElement(); while(rootElement) { ParseXML(rootElement); rootElement = rootElement->NextSiblingElement(); } delete myDocument; cout<<"----------------END-----------------"<<endl; return 0; } void PrintTree(int c) { if(c <= 0) return ; while(c) { cout<<" "; --c; } return; } //调用 tinyxml 解析 xml void ParseXML(TiXmlElement *pElement) { static int i= 0; PrintTree(i); cout<<pElement->Value()<<" "; const char * str = NULL; if(str = pElement->GetText()) cout<<" "<<str<<endl; else cout<<endl; TiXmlAttribute* attributeOfStudent = pElement->FirstAttribute(); while(attributeOfStudent) { PrintTree(i); std::cout << attributeOfStudent->Name() << " : " << attributeOfStudent->Value()<<std::endl; attributeOfStudent = attributeOfStudent->Next(); } TiXmlElement* ChildElement = pElement->FirstChildElement(); while(NULL != ChildElement) { i++; ParseXML(ChildElement); i--; ChildElement = ChildElement->NextSiblingElement(); } }
例如要解析的文件内容是 <?xml version="1.0" encoding="utf-8"?> <!-- This is a comment --> <Class name="Class of SoftWare"> <Students> <student name="LiLei" studentNo="13031001" sex="Man" age="22"> <phone>88208888</phone> <ET name="de" ground = "ground">on the ground <et name = "et name" ball = "ball"/> </ET> <address>Road1</address> </student> <student name="LiSi" studentNo="13031002" sex="Man" age="20"> <phone>88206666</phone> <address>Road2</address> </student> </Students> <Teatcher>few teatchers </Teatcher> </Class>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |