Review TinyXML

最近项目读取影像数据metadata,再次用到TinyXML,已经不那么熟练。之前使用还是专题产品系统的时候,在副研师兄大框架下引用的。最近有点空,整理下相关内容,备以后查询回顾。

特性:

TinyXML是目前C++的XML解析器用起来最友好的,作为轻量开源跨平台库(可商用),对xml的文本的解析提供了很大的便利。解析库模型在解析xml文件后,在内存中将信息转化为文档对象模型(DOM)使得可读、写、存,并利用树形结构表示这些元素之间的顺序和嵌套关系。支持UTF-8编码和前64k个字符实体。
注意:不解析文档类型定义(DTDs)和可扩展样式表语言XSLs
例如下面DTD语法在TinyXML里是不做解析的

1
2
3
<!DOCTYPE Archiv [
<!ELEMENT Comment (#PCDATA)>
]>

所以用于浏览器或更复杂的XML需要,目前的TinyXML是不能满足的。

使用:

下载TinyXML,解压缩后,将根目录下tinyxml.h、tinyxml.cpp、tinystr.h、tinystr.cpp、tinyxmlerror.cpp、tinyxmlparser.cpp六个文件拷贝添加到将要使用的Cpp工程即可,需要操作XML文件的地方,在头文件中加入#include"tinyxml.h"。如需要,可编译成dll(技能点加强:在tinyxml.h改相关属性来自定义特性)

操作:

classTiXmlBase
(一图以蔽之,官方大法好)

类列表
TiXmlBase:整个TinyXML模型的基类。
TiXmlAttribute:XML中的元素的属性对(name-value)。
TiXmlNode:DOM结构中的节点。
TiXmlComment:XML中的注释
TiXmlDeclaration:XML中的声明部分,在开始处,即<?versiong=”1.0” ?>。
TiXmlDocument:XML的整个文档,即顶端节点。
TiXmlElement:XML的元素,为一个容器。
TiXmlText:XML的文字。
TiXmlUnknown:任何未被TinyXML识别的保存成了这个未知。
TiXmlHandler:定义了针对XML的一些操作。

代码段:

据详细的tutorial
grinninglizard.com/tinyxmldocs/tutorial0.html
不怕不会用呀,备查