System.Xml.XmlNamespaceManager.AddNamespace 方法

方法描述

将给定的命名空间添加到集合。

语法定义(C# System.Xml.XmlNamespaceManager.AddNamespace 方法 的用法)

public virtual void AddNamespace(
	string prefix,
	string uri
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
prefix System-String 与要添加的命名空间关联的前缀。使用 String.Empty 来添加默认命名空间。“注意” 如果 XmlNamespaceManager 将用于解析 XML 路径语言 (XPath) 表达式中的命名空间,则必须指定前缀。如果 XPath 表达式不包含前缀,则假定命名空间统一资源标识符 (URI) 为空命名空间。有关 XPath 表达式和 XmlNamespaceManager 的更多信息,请参考 XmlNode.SelectNodes 和 XPathExpression.SetContext 方法。
uri System-String 要添加的命名空间。
返回值 void

提示和注释

XmlNamespaceManager 不会检查 prefix 和 uri 是否符合规范。

XmlReader 将检查名称(包括前缀和命名空间),以确保它们是符合 WWW 联合会 (W3C) 规范的有效 XML 名称。 由于 XmlNamespaceManager 由 XmlReader 在内部使用,因此 XmlNamespaceManager 会认定所有的前缀和命名空间都是有效的,以避免重复工作。

如果当前范围内已存在前缀和命名空间,则新的前缀和命名空间对将替换现有前缀/命名空间组合。 相同的前缀和命名空间组合可以存在于不同的范围。

默认情况下,将下面的前缀/命名空间对添加到 XmlNamespaceManager 中。 可以在任何范围确定它们。

前缀

命名空间

xmlns

http://www.w3.org/2000/xmlns/(xmlns 前缀命名空间)

xml

http://www.w3.org/XML/1998/namespace(XML 命名空间)

String.Empty

String.Empty(空命名空间)。 可以为该值重新分配一个不同的前缀。 例如 xmlns="" 将默认命名空间定义为空命名空间

System.Xml.XmlNamespaceManager.AddNamespace 方法例子

下面的示例使用 XmlNamespaceManager 解析 XML 片段中的命名空间。

using System;
using System.Xml;

public class Sample
{

    public static void Main()
    {

        XmlTextReader reader = null;

        try
        {

            // Create the string containing the XML to read.
            String xmlFrag = "" +
                           "Pride And Prejudice" +
                           "" +
                           "Jane" +
                           "Austen" +
                           "" +
                           "19.95" +
                           "&h;" +
                           "";

            // Create an XmlNamespaceManager to resolve namespaces.
            NameTable nt = new NameTable();
            XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
            nsmgr.AddNamespace(String.Empty, "urn:samples"); //default namespace
            nsmgr.AddNamespace("curr", "urn:samples:dollar");

            // Create an XmlParserContext.  The XmlParserContext contains all the information
            // required to parse the XML fragment, including the entity information and the
            // XmlNamespaceManager to use for namespace resolution.
            XmlParserContext context;
            String subset = "";
            context = new XmlParserContext(nt, nsmgr, "book", null, null, subset, null, null, XmlSpace.None);

            // Create the reader.
            reader = new XmlTextReader(xmlFrag, XmlNodeType.Element, context);

            // Parse the file and display the node values.
            while (reader.Read())
            {
                if (reader.HasValue)
                    Console.WriteLine("{0} [{1}] = {2}", reader.NodeType, reader.Name, reader.Value);
                else
                    Console.WriteLine("{0} [{1}]", reader.NodeType, reader.Name);
            }
        }
        finally
        {
            if (reader != null)
                reader.Close();
        }
    }
} // End class

异常

异常 异常描述
ArgumentException prefix 的值为“xml”或“xmlns”。
ArgumentNullException prefix 或 uri 的值为 null。

命名空间

namespace: System.Xml

程序集: System.Xml(在 System.Xml.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。