tingyxml

 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三个方面的数据信息以及相关的操作。()

  • TiXmlComment: 对应于XML文档中的注释部分的对象,它主要包含注释的内容以及相关的操作。( )

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

  • 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操作。

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部