·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> 关于XML中:XmlNode和XmlElement的涵义及不同之处

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

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

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

今天学习XML,遇到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属性。举例如下:<Bookimg="aspnet.jpg">//是XmlNode也是XmlElement,但是img以及aspnet.jpg只是XmlNode<Name>//既是XmlNode也是XmlElementC#//只是XmlNode</Name></Book>也就是元素节点可以相应转换为XmlElement,这样既可以使用XmlNode的功能,也可以使用它特有的对属性的操作方法。任意节点都可以使用XmlNode,因为XmlNode是所有Node的父类。这只是我个人试验后的戳见,有不对的地方,或者是有需要补充的地方希望前辈们指正。

转载自http://bbs.csdn.net/topics/330203920

创建XML的文件名为:cjp.xml

<?xml version="1.0" encoding = "utf-8"?> //文档头,文档头前面不能什么的注释或代码

<lanou>                  //开标签<名字> 这里的lanou是根节点,根节点有且只有一个 <!-- 注释:老师数组子节点 -->       //注释形式: <!-- 注释的内容 --> <teachers>               //<teachers>子节点,里面有多个<teacher>节点,所以我们可以理解为teachers数组 <!--每个老师 --> <teacher> <!-- 老师的属性 --> <name>二浩</name> <age>34</age> </teacher> <teacher> <name>易慧云</name> <age>31</age> <class>39</class> </teacher> <teacher> <name>徐明新</name> <age>30</age> <wife> <name>莉娜</name> </wife> </teacher> </teachers></lanou>                  //闭标签</ 名字>

usingUnityEngine;usingSystem.Collections;//处理XML结构的文档//1.引入库usingSystem.Xml;下面是在unity里面写得代码publicclassDataManager:MonoBehaviour{//函数voidLoad(){//1.使用XML库内的XmlDocument对象XmlDocumentxmldoc=newXmlDocument();//能吧xml库内的文档给读取出来//使用xmldoc对象加载xml结构的文档字符串xmldoc.LoadXml("<?xmlversion=\"1.0\"encoding=\"utf-8\"?><lanou>蓝鸥</lanou>");TextAssetta=Resources.Load("cjp")asTextAsset;xmldoc.LoadXml(ta.text);//xmldoc.Load("Resources/cjp.xml");//每个XML文档内有且只有一个根节点XmlElementroot=xmldoc.DocumentElement;//找到所有的teacher列表第一个//XmlNodeListlist=xmldoc.SelectNodes("//teacher[1]");//XmlNodeListlist=xmldoc.SelectNodes("//teacher[wife]");//XmlNodeListlist=xmldoc.SelectNodes("//teacher[age=30]");

// XmlNodeListlist=xmldoc.SelectNodes("//teacher[lase()]");//最后一个

//foreach(XmlNodenodeinlist){

//          Debug.Log(node.Name+":"+node.InnerText);//

           }

           Debug.Log(root.InnerText);

// Debug.Log(root.Name);

     }

          voidStart(){

            Load();

          }