1 回答

TA貢獻1946條經(jīng)驗 獲得超3個贊
1、通過繼承關(guān)系XmlElement繼承自XmlLinkedNode又繼承自XmlNode類,由此可知XmlElement是XmlNode的子類。我們知道子類繼承了父類所有的屬性和方法,因此,XmlNode所擁有的方法和屬性,在XmlElement類中也是可以使用的。
2、XmlElement是特殊的XmlNode類,Xml節(jié)點有多種類型:屬性節(jié)點、注釋節(jié)點、文本節(jié)點、元素節(jié)點等。也就是XmlNode是這多種節(jié)點的統(tǒng)稱。但是XmlElement專門指的就是元素節(jié)點。
3、XmlElement是具現(xiàn)類,可以直接實例化,而XmlNode是抽象類,必須通過XmlDocument實例通過CreateNode創(chuàng)建。
4、XmlElement擁有眾多對Attribute的操作方法,可以方便的對其屬性進行讀寫操作(XmlNode也可以通過Attributes屬性獲取屬性列表)。
5、在網(wǎng)上看到有人這么評論這兩個類的區(qū)別:XmlNode包含子節(jié)點,XmlElement只包含屬性及其本身不含有子節(jié)點。但是我通過代碼測試,發(fā)現(xiàn)即使是XmlElement,也可以通過ChildNodes來獲取子節(jié)點列表。雖然在斷點中斷模式下,我并沒有發(fā)現(xiàn)XmlElement有ChildNodes屬性。舉例如下:
<Book img="aspnet.jpg"> //是XmlNode也是XmlElement,但是img以及aspnet.jpg只是XmlNode
<Name> //既是XmlNode 也是XmlElement
C# //只是XmlNode
</Name>
</Book>
也就是元素節(jié)點可以相應(yīng)轉(zhuǎn)換為XmlElement,這樣既可以使用XmlNode的功能,也可以使用它特有的對屬性的操作方法。
任意節(jié)點都可以使用XmlNode,因為XmlNode是所有Node的父類。
添加回答
舉報