1 回答

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