文档对象模型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则具有更具体的功能。