zoukankan      html  css  js  c++  java
  • C#解析XML之流模型-XMLTextReader类

    • C#读取XML文档之XMLTextReader 类有一些构造程序来适应各种各样的情况,比如从一个已经存在的数据流或统一资源定位网址读取数据。最常见的是,你或许想从一个文件读取XML数据,那么也就有一个相应的构造程序来为此服务。

     XMLTextReader myReader;   

    myReader = New XMLTextReader("c:datasales.XML")

    • 创建一个称为Read()方法的循环,这个方法的返回值总是为真,直到到达文件的底部时,返回值才变为假。换句话说, 循环在文件的开始时启动并且读入所有的节点, 一次读入一个节点, 直到到达文件的结尾:

    While (myReader.Read()) {  

    ...  

    // 在这里处理每个节点.  

    ...  

    }

    • 每次成功调用Read()之后,XMLTextReader实例化程序包含了目前节点(即刚刚从文件中读取的那个节点)的信息。我们可以从XMLTextReader的成员中获得上述信息,就像表格1中描述的一样;并通过NodeType属性判断出当前节点的类型。在节点类型的基础上,程序的代码可以读取节点数据,检查它是否有属性,到底是忽略它还是根据程序需要进行相应的操作和处理。
    • 当使用NodeType属性时,理解节点怎么联系到XML单元是非常重要的。例如, 看下列 XML元素:

    ﹤city﹥Chongqing﹤/city﹥

    • C#读取XML文档之XMLtextReader 把这个元素看作 3 个节点,顺序如下:

    1.﹤city﹥标签被读为类型

    XMLNodeType.Element 节点,元素的名字“city”可从 XMLTextReader 的Name属性中获得。

    2.文本数据“Chongqing”被读为类型为XMLNodeType.Text的节点。数据“Chongqing ” 可从XMLTextReader 的Value属性中取得。

    3.﹤/city﹥标签被读为类型为XMLNodeType.EndElement 节点。同样,元素的名称“city”可从XMLTextReader的Name属性中获得。

     

    enum XmlNodeType {

    XmlNodeType_None = 0,

    XmlNodeType_Element = 1,

    XmlNodeType_Attribute = 2,

    XmlNodeType_Text = 3,

    XmlNodeType_CDATA = 4,

    XmlNodeType_ProcessingInstruction = 7,

    XmlNodeType_Comment = 8,

    XmlNodeType_DocumentType = 10,

    XmlNodeType_Whitespace = 13,

    XmlNodeType_EndElement = 15,

    XmlNodeType_XmlDeclaration = 17} ;

  • 相关阅读:
    es6-compact-table 名词备忘
    JS 防抖和节流函数
    为什么 JS 对象内部属性遍历的顺序乱了
    JS 发送 HTTP 请求方法封装
    JS 一些位操作的妙用
    JS 格式化时间
    linux ssh连接
    c# checked 和 unchecked
    c# mvc action 跳转方式
    IIS 动态与静态压缩
  • 原文地址:https://www.cnblogs.com/netlzl/p/4343113.html
Copyright © 2011-2022 走看看