zoukankan      html  css  js  c++  java
  • XML命名空间XmlNameSpace管理器和NameTable

    如何使用 XmlNamespaceManager 和 NameTable

    此示例显示如何从 XmlDocument 选择命名空间特定的 XML 数据。它说明了 XmlNamespaceManager 类的用法。该类封装命名空间的集合,并提供各种命名空间管理任务,如解析命名空间,向集合添加命名空间,或从集合移除命名空间,以及为命名空间提供范围管理。

    XmlNameTable 提供 XML 流中字符串名称的管理。它是通过创建原子化字符串对象表来进行管理的。该表为 XML 分析器提供了一种高效的方法,即对 XML 文档中所有重复的元素和属性名使用相同的 String 对象。

    该示例使用 XML 路径语言 (XPath) 表达式查询命名空间。有关 XPath 表达式的更多信息,请参阅如何使用 XPath 表达式查询 XML

     
    VB XmlNameSpace.aspx

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

    首先,该示例创建一个 XmlDocument 并将 orders.xml 文件加载到 XmlDocument 中。

    // Create a new XmlDocument for the specified source file and load it.
                XmlDocument myXmlDocument = new XmlDocument();
                myXmlDocument.Load("orders.xml");
                
    C# VB  

    为了获取 yourns1 命名空间的所有项元素,该示例使用下列 XPath 表达式://yourns1:item。该示例还创建一个 XmlNamespaceManager,它包含 XML 文档中的前缀和命名空间。

    orders.xml 文档定义两个前缀:http://tempuri.org/myUSorderprocessornamespace 的 myns 和 http://tempuri.org/USvendor1namespace 的 yourns1。该文档还有 http://tempuri.org/myUSordersnamespace 的默认命名空间(空前缀)。

    //Create a string containing the XPATH expression to evaluate.
                sExpr = String.Format("//{0}:item", "yourns1");
                //Create an XmlNamespaceManager and add the namespaces for the document.
                XmlNamespaceManager nsmanager = new XmlNamespaceManager(doc.NameTable);
                //Set default namespace--first param is null.
                nsmanager.AddNamespace(String.Empty, "http://tempuri.org/myUSordersnamespace");
                nsmanager.AddNamespace("myns", "http://tempuri.org/myUSorderprocessornamespace");
                nsmanager.AddNamespace("yourns1", "http://tempuri.org/USvendor1namespace");
                nsmanager.AddNamespace("yourns2", "http://tempuri.org/USvendor2namespace");
                
    C# VB  

    然后,该示例在 XmlDocument 上调用 SelectNodes 方法。在这种情况下,SelectNodes 方法查找带有 yourns1 前缀的所有项节点,该前缀解析为命名空间 http://tempuri.org/USvendor1namespace。

    SelectNodes 方法返回一个 XmlNodeList。然后该示例显示此节点列表。

    XmlNodeList nodelist = myXmlDocument.SelectNodes(exprString, nsmanager);
                foreach (XmlNode myXmlNode in nodelist)
                {
                DisplayTree(myXmlNode);
                }
                
    C# VB  

    摘要

    1. XmlNamespaceManager 类解析命名空间,向集合添加命名空间,以及从集合移除命名空间。
    2. 应用程序可使用 XmlNameTable 提高 XML 分析器的性能。
  • 相关阅读:
    apache多端口映射
    mark
    一些注册表值
    jsp URL中文处理的几种方式
    【引用】雨林木风Ghost XP SP3系统
    CentOS常用命令
    查看ie8临时文件夹
    卡塔兰数
    大数问题
    不会做的题目
  • 原文地址:https://www.cnblogs.com/chorrysky/p/584535.html
Copyright © 2011-2022 走看看