使用TinyXml对XML进行遍历

        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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hellokandy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值