• 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 可提供只读取给定节点的子树的读取器。
  • 相关阅读:
    es6常用语法(持续更新中)
    发送请求时params和data的区别
    js引擎查询 LHS RHS(消化ing)
    Linux常用命令(持续更新)
    Https理解
    MVVM理解
    原生js与jquery区别
    Cookie如何防范XXS攻击
    基于python的appium环境搭建
    pycharm安装步骤
  • 原文地址:https://www.cnblogs.com/chorrysky/p/584488.html
Copyright © 2020-2023  润新知