tingyxml

本文深入探讨TinyXML解析器的工作原理,包括其轻量级特性及在解析简单XML文件如配置文件的应用。文章介绍了TinyXML的主要类,如TiXmlBase、TiXmlNode、TiXmlDocument等,以及它们如何构成DOM树。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 DOM(Document Object Model,文档对象模型),则是在分析时,一次性的将整个XML文档进行分析,并在内存中形成对应的树结构,同时,向用户提供一系列的接口来访问和编辑该树结构。这种方式占用内存大,速度往往慢于SAX,但可以给用户提供一个面向对象的访问接口,对用户更为友好。

解析器分为两种:一种是验证的,即会跟据XML文件中的声明,用相应的DTD文件对XML文件进行校验,检查它是否满足DTD文件的要求。另一种是忽略DTD文件,只要基本格式正确,就可以进行解析。

一般而言,验证的解析器通常都是比较重量级的。TinyXml不支持验证,但是体积很小,用在解析格式较为简单的XML文件,比如配置文件、简单的数据文件,特别的合适,可以很方便的静态连接到程序里。但是由于它是非验证的,因此需要在程序里做许多检查工做,加重了程序编写的负担。

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

  • TiXmlBase: 所有tinyxml中的对象的公共基类,实现了一些公共的操作,比如字符编码转换等,另外还定义了一些公共的数据结构,比如错误类型等。

  • TiXmlNode: 是DOM树中结点元素的基类型,它定义了DOM树结点的一些特征数据以及一些相关的操作。

  • TiXmlDocument:对应于XML文档整体的一个对象,一棵DOM的根结点是TiXmlDocument类型,而且基它结点不能为TiXmlDocument类型。(example.xml)

  • TiXmlDeclaration:对应于XML文档开始部分声明部分的对象,它主要包含version,  encode, standalone三个方面的数据信息以及相关的操作。(<?xml version=”1.0″ standalone=no>)

  • TiXmlComment: 对应于XML文档中的注释部分的对象,它主要包含注释的内容以及相关的操作。(<!– Our to do list data –> )

  • TiXmlElement:对应于XML文档中普通的元素的对象,每个元素有一个对应的名字,另外还可以有一些属性。TiXmlElement包含了这些相关信息及其操作。 ( <ToDo>  <Item priority=”1″>  <bold> <Item priority=”2″>)

  • TiXmlText: 对应于XML文档中元素中的文本信息的对象,它实现了文本信息相关的操作。(Go to the , Toy store!, Do bills)

  • TiXmlAttributeSet: XML文档中某个元素的所有属性的集合,它是TiXmlElement的一部分,它用来管理该元素的所有属性。

  • TiXmlAttribute: XML文档中的元素的属性所对应的对象。它是一个name-value pair对象,name是属性名,value是属性值。

  • TiXmlUnknown: 所有的用上面的对象不能表示的内容所对应的对象。

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

TinyXML2实现了一个名为MemPoolT的模板类,创建对象时,均是由XMLDocument持有的MemPoolT对象来进行内存分配,在MemPoolT中,分配的内存以链表形式连接起来,统一管理,统一释放。因此,即便是所创建的节点未被链接到文档树中,也不会造成内存泄漏,所以,无需显式的执行delete操作。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值