之前在学习xml文本解析,发现一个比较好用的开源程序,tinyxml,在这里分享一下tinyxml的原理跟XML文件的遍历操作。
TinyXML是一个简单的,轻量级的,由C++实现的XML文档的解析器,它可以被其它程序方便地集成进去使用
关于tinyxml的剖析:
下面是名为 example.xml的文档,后续的剖析都会以这个xml文档为例:
(1)tinyxml把xml文档建立成一棵DOM(Document Object Model)树,具体实现用的是firstchild–nextsibling tree,下面是对该树的模型的一个简单介绍:
firstchild-nextsibling是一种多叉树常用的实现方法,每个结点只需要知道它的第一个孩子结点(first child node)和它的下一个兄弟结点(next sibling node),这样一整棵树的结构就会建立起来,也可以用根结点的指针为起点来对整棵树进行遍历。在tinyxml中,每个结点保存了它的first child, last child, next sibling, previous sibling, parent这五个与它相关的结点的指针,这样便可提供更加方便的遍历接口。下面是对上面的example.xml的内容所建立的DOM树