今天学习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属性。举例如下:
<Book img="aspnet.jpg"> //是XmlNode也是XmlElement,但是img以及aspnet.jpg只是XmlNode
      <Name> //既是XmlNode 也是XmlElement   
          C#      //只是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>                  //闭标签</ 名字>

using UnityEngine;
using System.Collections;
//处理XML结构的文档
//1.引入库
using System.Xml;

下面是在unity里面写得代码
public class DataManager : MonoBehaviour {

//函数
        void Load()
        {
                //1.使用XML库内的XmlDocument对象
                XmlDocument xmldoc = new XmlDocument ();//能吧xml库内的文档给读取出来

//使用xmldoc对象加载xml结构的文档字符串
                xmldoc.LoadXml ("<?xml version=\"1.0\" encoding=\"utf-8\" ?> <lanou>蓝鸥</lanou>");

TextAsset ta = Resources.Load ("cjp") as TextAsset;
                xmldoc.LoadXml (ta.text);

//                xmldoc.Load ("Resources/cjp.xml");
                //每个XML文档内有且只有一个根节点
                XmlElement root = xmldoc.DocumentElement;

//找到所有的teacher  列表   第一个
//                XmlNodeList list = xmldoc.SelectNodes ("//teacher[1]");
//                XmlNodeList list = xmldoc.SelectNodes ("//teacher[wife]");
//                XmlNodeList list = xmldoc.SelectNodes ("//teacher[age = 30]");

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

//                foreach (XmlNode node in list) {

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

           }

           Debug.Log (root.InnerText);

//                Debug.Log (root.Name);

     }

          void Start () {

            Load ();

          }

关于XML中:XmlNode和XmlElement的涵义及不同之处的更多相关文章

  1. 读取XML文件(XmlNode和XmlElement区别)

    XmlNode和XmlElement区别.这两个类的功能极其类似(因为我们一般都是在对Element节点进行操作). 1.通过继承关系XmlElement继承自XmlLinkedNode又继承自Xml ...

  2. Android XML中引用自定义内部类view的四个why

    今天碰到了在XML中应用以内部类形式定义的自定义view,结果遇到了一些坑.虽然通过看了一些前辈写的文章解决了这个问题,但是我看到的几篇都没有完整说清楚why,于是决定做这个总结. 使用自定义内部类v ...

  3. XmlNode和XmlElement区别

    今天在做ASP.NET操作XML文档的过程中,发现了两个类:XmlNode和XmlElement.这两个类的功能极其类似(因为我们一般都是在对Element节点进行操作).上网搜罗了半天,千篇一律的答 ...

  4. Xml中SelectSingleNode方法,xpath查找某节点用法

    Xml中SelectSingleNode方法,xpath查找某节点用法 最常见的XML数据类型有:Element, Attribute,Comment, Text. Element, 指形如<N ...

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

    前言: element是特殊的node 一段纯文本即text-node也是node 但不是element w3c的原话是 A node can be an element node, an attri ...

  6. XmlNode与XmlElement的区别总结

    原文链接:http://www.cnblogs.com/oilsun/archive/2012/07/07/2580427.html 今 天在做ASP.NET操作XML文档的过程中,发现了两个类:Xm ...

  7. (转载)读取xml中的指定节点的值

            /// <summary>         /// 读取xml中的指定节点的值        /// </summary>         private st ...

  8. 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中

    List<Person> list = new List<Person> { new Person{Name="张三",Age=20,Email=" ...

  9. Xml中SelectSingleNode方法中的xpath用法

    https://blog.csdn.net/wf520pb/article/details/2644549 最常见的XML数据类型有:Element, Attribute,Comment, Text. ...

随机推荐

  1. C语言位域

    转载自 http://tonybai.com/2013/05/21/talk-about-bitfield-in-c-again/ 再谈C语言位域 五 21 bigwhite技术志 bitfield, ...

  2. java基础知识(六)日期处理

    一.日期处理类 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值.它也允许格式化和解析日期字符串.不过,这些函数的 API 不易于实现国际化.从 ...

  3. JavaFx客户端服务器C/S架构搭建

    客户端获取服务器端软件更新版本方法: package com.platform.ui.update; import java.io.BufferedInputStream; import java.i ...

  4. 移动端H5页面高清多屏适配方案

    背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范 ...

  5. AI与PS

    PS 提取边界的方法 http://jingyan.baidu.com/article/4665065864c41ff549e5f80d.html 镜面对称 http://jingyan.baidu. ...

  6. iOS开发常用校验

    一.身份证号码校验 + (BOOL)cheakIdentityCard: (NSString *)value { value = [value stringByTrimmingCharactersIn ...

  7. centos7.0 下安装git(ssh方式)

    最近刚弄了个阿里云,在上面弄个git服务器,这里只弄了ssh方式访问,http方式访问的可以看我另外一个随笔http://www.cnblogs.com/hz-cww/p/6077970.html. ...

  8. windows

    1.拷贝远程文件 net use \\10.130.80.62\ipc$ 密码 /user:用户名 xcopy "\\10.130.80.62\G$\yt\apache-tomcat-7.0 ...

  9. tomcat 远程调试

    1.服务端查看cataline.sh 中的描述  cataline jpda start 开启服务端远程调试 远程调试端口JPDA_ADDRESS="8000" 2.本地代码参考  ...

  10. UML大战需求分析——阅读笔记06

    状态机图和活动图在样子比较相似,但状态机图是用来为对象的状态及造成状态改变的事件建模.我们大二学习UML统一建模语言状态机图模块时了解到,UML的状态机图主要用于建立对象类或对象的动态行为模型,描述系 ...