猿问

关于XML中Node和Element的区别是什么

关于XML中Node和Element的区别是什么

Cats萌萌
浏览 980回答 4
4回答

狐的传说

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 &nbsp;&nbsp;C# &nbsp; &nbsp; &nbsp;//只是XmlNode &nbsp;&nbsp;</Name> &nbsp;</Book>也就是元素节点可以相应转换为XmlElement,这样既可以使用XmlNode的功能,也可以使用它特有的对属性的操作方法。任意节点都可以使用XmlNode,因为XmlNode是所有Node的父类。

森栏

简单理解的话,xml中的一切都是node, element是尖括号括起来的东西,element也是一种node,比如:<!ENTITY...><xml a="myAttribute">SomeText<!-- A comment --></xml>这些都是Node:<!ENTITY...><xml ... </xml>a="myAttribute"SomeText<!-- A comment -->只有<xml ... </xml>是element&nbsp;
随时随地看视频慕课网APP

相关分类

Html5
我要回答