为什么XML中的节点和元素不同?理由是什么?

时间:2010-02-03 09:24:22

标签: xml dom

我已经编写了一段时间在XML上运行的代码,我一直想知道有两个节点和元素的原因是什么? (我们知道what the differences are)。它们都代表标签(或多或少)并且具有不同的方法,只会使代码变得复杂。

是否有任何特殊的语义或实际原因,或者只是DOM规范是委员会生成的事实?

4 个答案:

答案 0 :(得分:9)

Node是Element的基类 - 几乎Xml文档中的所有内容都是Node,例如:

<!ENTITY...>
<xml a="myAttribute">
    SomeText
    <!-- A comment -->
</xml>

在上面的例子中:

  • <!ENTITY...>是一个实体
  • <xml ...是一个元素
  • a="myAttribute"是属性
  • SomeText是文本节点
  • <!-- A comment -->是评论

以上所有内容都继承自Node,实际上在上面的示例myAttribute中也是一个文本节点。

答案 1 :(得分:6)

节点比元素更通用。查看this page了解Node可以代表的所有不同“事物”。元素只是其中一种可能性,与标签相对应。重要的是要强调节点通常不代表XML标签。

例如,<a>blah</a>包含两个节点。第一个是表示<a>标签的'元素',第二个是包含“blah”的文本节点。

答案 2 :(得分:2)

它们都不代表标签。元素表示以开始标记开头并以结束标记结尾的节点。元素是节点,但节点不一定是元素。例如,节点可以是:

  • 元素
  • 文字数据
  • 评论

答案 3 :(得分:1)

请查看What's the difference between an element and a node in XML? 之前曾问过类似的问题。

要点: 元素是一种特殊的节点。节点也可以是属性节点,文本节点,注释节点等。