發現了兩個類:XmlNode和XmlElement。這兩個類的功能極其相似(由於咱們通常都是在對Element節點進行操做)。上網蒐羅了半天,千篇一概的答案。永遠說不到重點,有些人回答又特別含糊,無奈之下,本身設斷點嘗試對比效果,如今總結以下:java
一、經過繼承關係XmlElement繼承自XmlLinkedNode又繼承自XmlNode類,由此可知XmlElement是XmlNode的子類。咱們知道子類繼承了父類全部的屬性和方法,所以,XmlNode所擁有的方法和屬性,在XmlElement類中也是能夠使用的。測試
二、XmlElement是特殊的XmlNode類,Xml節點有多種類型:屬性節點、註釋節點、文本節點、元素節點等。也就是XmlNode是這多種節點的統稱。可是XmlElement專門指的就是元素節點。繼承
三、XmlElement是具現類,能夠直接實例化,而XmlNode是抽象類,必須經過XmlDocument實例經過CreateNode建立。方法
四、XmlElement擁有衆多對Attribute的操做方法,能夠方便的對其屬性進行讀寫操做(XmlNode也能夠經過Attributes屬性獲取屬性列表)。im
五、在網上看到有人這麼評論這兩個類的區別:XmlNode包含子節點,XmlElement只包含屬性及其自己不含有子節點。可是我經過代碼測試,發現即便是XmlElement,也能夠經過ChildNodes來獲取子節點列表。雖然在斷點中斷模式下,我並無發現XmlElement有ChildNodes屬性。舉例以下:總結
<Book img="aspnet.jpg"> //是XmlNode也是XmlElement,可是img以及aspnet.jpg只是XmlNodeimg
<Name> //既是XmlNode 也是XmlElement 註釋
java //只是XmlNode asp
</Name> 實例化
</Book>
也就是元素節點能夠相應轉換爲XmlElement,這樣既能夠使用XmlNode的功能,也能夠使用它特有的對屬性的操做方法。
任意節點均可以使用XmlNode,由於XmlNode是全部Node的父類。
這只是我我的試驗後的戳見,有不對的地方,或者是有須要補充的地方但願前輩們指正。