为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Cats萌萌 2019-07-09 09:04:13
关于XML中Node和Element的区别是什么
查看完整描述

4 回答

?
狐的传说

TA贡献1804条经验 获得超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的父类。




查看完整回答
反对 回复 2019-07-10
?
森栏

TA贡献1810条经验 获得超5个赞

简单理解的话,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


 


查看完整回答
反对 回复 2019-07-10
  • 4 回答
  • 0 关注
  • 979 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信