我已经编写了一段时间在XML上运行的代码,我一直想知道有两个节点和元素的原因是什么? (我们知道what the differences are)。它们都代表标签(或多或少)并且具有不同的方法,只会使代码变得复杂。
是否有任何特殊的语义或实际原因,或者只是DOM规范是委员会生成的事实?
答案 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? 之前曾问过类似的问题。
要点: 元素是一种特殊的节点。节点也可以是属性节点,文本节点,注释节点等。