一直在編寫使用XML的代碼一段時間以來,我總是想知道有兩個節點和元素的原因是什麼? (我們知道what the differences are)。它們都代表標籤(或多或少),並具有不同的方法,只是使代碼複雜化。爲什麼節點和元素在XML中有所不同?基本原理是什麼?
是否有任何特殊的語義或實際原因,還是僅僅是DOM規範委員會生成的事實?
一直在編寫使用XML的代碼一段時間以來,我總是想知道有兩個節點和元素的原因是什麼? (我們知道what the differences are)。它們都代表標籤(或多或少),並具有不同的方法,只是使代碼複雜化。爲什麼節點和元素在XML中有所不同?基本原理是什麼?
是否有任何特殊的語義或實際原因,還是僅僅是DOM規範委員會生成的事實?
節點是一個基類元素 - 在XML文檔中幾乎一切是節點,例如:
<!ENTITY...>
<xml a="myAttribute">
SomeText
<!-- A comment -->
</xml>
在上面的例子:
<!ENTITY...>
是一個實體<xml ...
是元素a="myAttribute"
是屬性SomeText
是一個文本節點<!-- A comment -->
是一條評論所有的節點上繼承的,事實上在上面的例子myAttribute
也是一個文本節點。
節點比元素更通用。查看this page,瞭解Node可以代表的所有不同「事物」。元素只是這些可能性中的一種,它與標籤相對應。強調節點通常不代表XML標籤是很重要的。例如,<a>blah</a>
包含兩個節點。第一個是代表<a>
標籤的「元素」,第二個是包含「blah」的文本節點。
請看看What's the difference between an element and a node in XML? 以前也有過類似的問題。
摘要: 元素是特定類型的節點。節點也可以是屬性節點,文本節點,評論節點等。
它們都不代表標籤。元素表示以開始標記開始並以結束標記結束的節點。元素是一個節點,但節點不一定是元素。例如節點可以是:
重複 - http://stackoverflow.com/questions/132564/whats-the-difference-between-an -element-and-a-node-in-xml – MicTech 2010-02-03 09:29:13
這不是重複的。我懷疑關閉這個項目的人沒有讀到這個問題。標題是重複的,內容不是。 總之,他問*爲什麼*節點和元素的想法是作爲獨立的事物存在的,而不是*有什麼不同。 – bharal 2012-12-11 13:30:02