XmlNode和XmlElement区别

今天在做ASP.NET操作XML文档的过程中,发现了两个类:XmlNode和XmlElement。这两个类的功能极其类似(因为我们一般都是在对Element节点进行操作)。上网搜罗了半天,千篇一律的答案。永远说不到重点,有些人回答又特别含糊,无奈之下,自己设断点尝试对比效果,现在总结如下:
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的父类。
这只是我个人试验后的戳见,有不对的地方,或者是有需要补充的地方希望前辈们指正。

时间: 2024-10-09 08:40:04

XmlNode和XmlElement区别的相关文章

XmlNode与XmlElement的区别总结

原文链接:http://www.cnblogs.com/oilsun/archive/2012/07/07/2580427.html 今 天在做ASP.NET操作XML文档的过程中,发现了两个类:XmlNode和XmlElement.这两个类的功能极其类似(因为我们一般都是在对 Element节点进行操作).上网搜罗了半天,千篇一律的答案.永远说不到重点,有些人回答又特别含糊,无奈之下,自己设断点尝试对比效果,现在总结如 下:1.通过继承关系XmlElement继承自XmlLinkedNode又

XmlNode与XmlElement (2012-07-25 13:35:25)

一.xmlnode类节点:xmlnode类表示xml文档中的单个节点,其命名空间为:System.XmlXmlNode的三个最主要的子类包括:XmlDocument.XmlDataDocument及XmlDocumentFragment1.XmlNode类的属性:public virtual bool HasChildNodes {get;} 获取一个值,该值指示当前节点是否有任何子节点 public virtual XmlNodeList ChildNodes {get;} 获取当前节点的所有

关于XML中:XmlNode和XmlElement的涵义及不同之处

今天学习XML,遇到XmlNode和XmlElement俩个类,故有了下文的所述: 今天在做ASP.NET操作XML文档的过程中,发现了两个类:XmlNode和XmlElement.这两个类的功能极其类似(因为我们一般都是在对 Element节点进行操作).上网搜罗了半天,千篇一律的答案.永远说不到重点,有些人回答又特别含糊,无奈之下,自己设断点尝试对比效果,现在总结如 下: 1.通过继承关系XmlElement继承自XmlLinkedNode又继承自XmlNode类,由此可知XmlElemen

[转]XML中元素(Element)与节点(Node)的区别

前言: element是特殊的node 一段纯文本即text-node也是node 但不是element w3c的原话是 A node can be an element node, an attribute node, a text node, or any other of the node types explained in the "Node types" chapter. 一.xmlnode类节点: xmlnode类表示xml文档中的单个节点,其命名空间为:System.X

C# XML相关操作

XML是一种意见单文本格式存储数据的方式,这意味着它可以被任何计算机读取.XML中完整的数据集就是XML文档. 在名称空间System.Xml下面大部分类型都是用来支持DOM处理模型的.其中很多类型配合起来共同组织成XMLDOM,XMLDOM是一种很典型的文档对象模型的应用.文档对象模型是一种比较高级的软件设计模式,我会在今后的课程中详细介绍文档对象模型这种软件设计模式. 类名 说明 XmlNode 这个类表示文档的一个节点,它是许多类的基类.如果这个节点表示XML文档的根,就可以从它导航文档任

XmlDocument

XmlDocument对象是用处理xml文件的. 这里先介绍几个知识点. 1.CDATA 不检测文本,因为和网页的跨站攻击一样,xml也存在转义的问题.在CDATA块内的数据会原样输出. 2.XmlNode和XmlElement的区别,后者是前者的子类,前者包括的范围广,xml文档的所有节点都归宿XmlNode, 只有文本节点才属于XmlElement. 用法: 1.Load 加载xml文档. 2.LoadXml 加载xml文档,内部调用了Load方法. 3.HasChildNode 判断是否有

XML文件的操作说明

说明:C#中XmlNode与XmlElement的区别如下:xmlnode类表示xml文档中的单个节点,其命名空间为:System.Xml.XmlNode的三个最主要的子类包括:XmlDocument.XmlDataDocument及XmlDocumentFragment. XmlElement继承自XmlLinkedNode又继承自XmlNode类,由此可知XmlElement是XmlNode的子类. XmlElement是特殊的XmlNode类,Xml节点有多种类型:属性节点.注释节点.文本

关于ArcGIS常用功能的实现

关于ArcGIS中常见的一些功能的总结,一般首先在前台中放置地图,<esri:Map Grid.Row="0" Grid.Column="0" Grid.RowSpan="5" Grid.ColumnSpan="6"  x:Name="MyMap" WrapAround="True"  MouseClick="MyMap_MouseClick" ExtentCh

C#操作配置文件(二)

上一篇博客介绍了利用ConfigurationManager去操作配置文件,这次总结一下,利用操作xml文件的方法去操作配置文件.利用 更新配置信息 /// <summary> /// 更新配置文件信息 /// </summary> /// <param name="name">配置文件字段名称</param> /// <param name="Xvalue">值</param> private