tinyxml的用法和实例
发布时间:2020-12-15 22:33:14 所属栏目:百科 来源:网络整理
导读:现在很多协议都用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>
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
