zoukankan      html  css  js  c++  java
  • XML文档对象模型使用XmlNodeReader

    如何使用 XmlNodeReader

    此示例阐释如何创建和使用 XmlNodeReader。XmlNodeReader 是一种读取器,可提供对 XmlNode 中的 XML 数据的快速、非缓存和只进的访问。它能够读取整个 XML DOM 树,或只从子树读取。然而,XmlNodeReader 不支持文档类型定义 (DTD) 或架构验证,因此不验证它读取的 XML。

    此示例将 books.xml 加载到 XmlDocument 中,然后使用 XmlNodeReader 获取每个节点以及它们各自的值,以将这些值显示在屏幕上。

     
    VB XmlNodeReader.aspx

    [运行示例] | [查看源代码]

    创建 XmlDocument 并将 books.xml 文件加载到其中后,该示例创建一个 XmlNodeReader,它可选择 XmlDocument 中的单个节点。该示例将此 XmlNodeReader 传递到 FormatXml 函数,该函数将节点数据输出到屏幕上。然后,该示例创建另一个 XmlNodeReader,它选择不同的节点以输出到屏幕上。

    XmlDocument myXmlDocument = new XmlDocument();
                myXmlDocument.Load (arg);
                ...
                XmlNodeReader myXmlNodeReader = new XmlNodeReader (myXmlDocument.SelectSingleNode("bookstore/book[3]"));
                FormatXml (myXmlNodeReader);
                ...
                myXmlNodeReader = new XmlNodeReader (myXmlDocument.SelectSingleNode("bookstore/book[2]"));
                myXmlNodeReader.Read();
                Console.WriteLine (myXmlNodeReader.ReadInnerXml());
                
    C# VB  

    该部分示例仅使用 XmlNodeReader 的 Read 方法读取每个节点,然后根据节点类型,使用 Format 函数将节点输出到屏幕上。

    private static void FormatXml (XmlNodeReader reader)
                {
                while (reader.Read())
                {
                switch (reader.NodeType)
                {
                case XmlNodeType.ProcessingInstruction:
                Format (reader, "ProcessingInstruction");
                break;
                case XmlNodeType.DocumentType:
                Format (reader, "DocumentType");
                break;
                case XmlNodeType.Document:
                Format (reader, "Document");
                break;
                case XmlNodeType.Comment:
                Format (reader, "Comment");
                break;
                case XmlNodeType.Element:
                Format (reader, "Element");
                while(reader.MoveToNextAttribute())
                {
                Format (reader, "Attribute");
                }
                break;
                case XmlNodeType.Text:
                Format (reader, "Text");
                break;
                case XmlNodeType.Whitespace:
                Format (reader, "Whitespace");
                break;
                }
                }
                }
                // Format the output
                private static void Format(XmlNodeReader reader, String NodeType)
                {
                // Format the output
                for (int i=0; i < reader.Depth; i++)
                {
                Console.Write('\t');
                }
                Console.Write(NodeType + "<" + reader.Name + ">" + reader.Value);
                Console.WriteLine();
                }
                
    C# VB  

    摘要

    1. XmlNodeReader 是提供对 XmlNode 中的 XML 数据进行快速、非缓存和只进的访问的读取器。
    2. 因为也可使用 XmlDocument 中的任何 XmlNode 构造 XmlNodeReader,所以 XmlNodeReader 可提供只读取给定节点的子树的读取器。
  • 相关阅读:
    ubuntu远程windows桌面
    spring boot 给返回值加状态 BaseData
    spring boot 拦截异常 统一处理
    IntelliJ IDEA spring boot 远程Ddbug调试
    IntelliJ IDEA 常用插件
    spring boot 请求地址带有.json 兼容处理
    spring boot 接口返回值去掉为null的字段
    spring boot 集成disconf
    Spring boot 自定义拦截器
    Linux下安装MySQL
  • 原文地址:https://www.cnblogs.com/chorrysky/p/584488.html
Copyright © 2011-2022 走看看