xmlElement和xmlNode的区别

发现了两个类: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的父类。

这只是我我的试验后的戳见,有不对的地方,或者是有须要补充的地方但愿前辈们指正。

相关文章
相关标签/搜索