解析XML文档时Node和Element的区别

文档对象模型DOM(Document Object Module)定义了用户操作文档对象的接口,它使得用户对HTML有了空前的访问能力,并使开发者能将HTML作为XML文档来处理。

使用C++的TinyXML解析XML文档时,会有两套方法,一套操作Node,一套操作Element。

Node(节点)是DOM层次结构中的任何类型的对象的通用名称,Node有很多类型,如元素节点,属性节点,文本节点,注释节点等,通过NodeType区分,常见的有:

节点类型 NodeType
元素Element 1
属性Attr 2
文本Text 3
注释Comments 8
文档Document 9

 

 

 

 

 

 

Element继承了Node类,也就是说Element是Node多种类型中的一种,即当NodeType为1时Node即为ElementNode,另外Element扩展了Node,Element拥有id、class、children等属性。

1 <Alarm lock="true">             //node  
2       <Time>                       //node  
3           StringValue              //node  
4       </Time>                      //node  
5 </Alarm>                           //node  

以上Alarm(元素节点),lock(属性节点),Time(元素节点),StringValue(文本节点)都是Node,但是只有 <Alarm>......</Alarm>和<Time>StringValue</Time>是Element。

Element继承于node,除了Element之外,还有Attribute、Text、Comments、Document等。

通过某方法可以得到某个Node的值,它可能是Element、Attribute、Text等,如果你不确定,则可以使用Node来做返回值的类型。
Node只是具有了一些通用的方法,而Element则具有更具体的功能。

posted @ 2016-06-21 19:57  SneakyCrab  阅读(625)  评论(0编辑  收藏  举报