您的位置:首页 > 其它

使用TinyXml对XML进行遍历

2016-04-05 18:41 148 查看
TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译。这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。

DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序关系以及嵌套包含关系。

下面介绍TinyXML的一些类。在TinyXML中,根据XML的各种元素来定义了一些类:

TiXmlBase:整个TinyXML模型的基类。

TiXmlAttribute:对应于XML中的元素的属性。

TiXmlNode:对应于DOM结构中的节点。

TiXmlComment:对应于XML中的注释

TiXmlDeclaration:对应于XML中的申明部分,<?versiong="1.0" ?>。

TiXmlDocument:对应于XML的整个文档。

TiXmlElement:对应于XML的元素。

TiXmlText:对应于XML的文字部分

TiXmlUnknown:对应于XML的未知部分。

TiXmlHandler:定义了针对XML的一些操作。



本次测试使用的xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<EllipsoidParam>
<Datum Name="BeiJing54" SemiMajorAxis="6378245.0" Flattening="298.3"/>
<Datum Name="XiAn80" SemiMajorAxis="6378140.0" Flattening="298.257"/>
<Datum Name="CGCS2000" SemiMajorAxis="6378137.0" Flattening="298.257222101"/>
<Datum Name="WGS-84" SemiMajorAxis="6378137.0" Flattening="298.257223563"/>
</EllipsoidParam>


测试程序:

// tinyxml_test.cpp : 定义控制台应用程序的入口点。
//
#include <string>
#include "tinyxml.h"
//
int main()
{
TiXmlDocument doc("test.xml");
bool loadOkay = doc.LoadFile();

if (!loadOkay)
{
return false;
}

TiXmlNode *node = 0;
TiXmlElement *datumElement = 0;

node = doc.FirstChild("EllipsoidParam");
for (node = node->FirstChild(); node != 0; node = node->NextSibling())
{
datumElement = node->ToElement();
//
printf("name:%15s	semi:%15s	flatten:%15s\r\n",
datumElement->Attribute("Name"),
datumElement->Attribute("SemiMajorAxis"),
datumElement->Attribute("Flattening"));
}
system("pause");
return 0;
}
附:tinyxml的下载地址:https://sourceforge.net/projects/tinyxml/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: