zoukankan      html  css  js  c++  java
  • XML学习总结

    1、XML结构


    2、XmlNodeType值为一个枚举类型:


    如果我们对一个XML文件进行遍历,不判断节点是否为Element类型,就会将文本节点遍历出来,出现#test。

    3、XmlElement和XmlNode的区别:(摘自CSDN论坛)

    (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的父类。

    4、Node和Element的区别:

    在DOC(文本对象模型)中是存在Node概念,而Element是在XML中的概念,但DOC中是可以讲Node->Element。换言之:一个Node不一定是一个Element,但是一个Element一定是一个Node。

    5、遍历一个xml文件中所有节点。

         private void GetAllNode(TreeList tlTree, TreeListNode pTreeNode, XmlNode xmlNode)
            {
                foreach (XmlNode pChildNode in xmlNode.ChildNodes)
                {
                    if (pChildNode.NodeType.Equals(XmlNodeType.Element))         //节点类型判断
                    {
                        TreeListNode pTreeNodeChild = tlTree.AppendNode(new object[] { pChildNode.Name }, pTreeNode);
                        if (pChildNode.HasChildNodes)
                        {
                            GetAllNode(tlTree, pTreeNodeChild, pChildNode);
                        }
                    }
                }
            }


  • 相关阅读:
    JavaScript链式调用
    Javascript设计模式(2)-单体模式
    Javascript设计模式(1)
    stm32结合产品学习01—产品的框架
    【目标检测-模型对比1】R-CNN、SPPnet、Fast R-CNN、Faster R-CNN的对比
    【目标检测-框架测试】mmdetection的安装与使用
    【机器学习-笔记1】吴恩达网课笔记1——机器学习策略
    【算法】P1004 方格取数
    【算法】UVa 11624, Fire! 解题心得
    vector
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258684.html
Copyright © 2011-2022 走看看