XmlNamespaceManager.AddNamespace 方法

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

**命名空间:**System.Xml
**程序集:**System.Xml(在 system.xml.dll 中)

语法

声明
Public Overridable Sub AddNamespace ( _
    prefix As String, _
    uri As String _
)
用法
Dim instance As XmlNamespaceManager
Dim prefix As String
Dim uri As String

instance.AddNamespace(prefix, uri)
public virtual void AddNamespace (
    string prefix,
    string uri
)
public:
virtual void AddNamespace (
    String^ prefix, 
    String^ uri
)
public void AddNamespace (
    String prefix, 
    String uri
)
public function AddNamespace (
    prefix : String, 
    uri : String
)

参数

  • prefix
    与要添加的命名空间关联的前缀。使用 String.Empty 来添加默认命名空间。

    提示

    如果 XmlNamespaceManager 将用于解析 XML 路径语言 (XPath) 表达式中的命名空间,则必须指定前缀。如果 XPath 表达式不包含前缀,则假定命名空间统一资源标识符 (URI) 为空命名空间。有关 XPath 表达式和 XmlNamespaceManager 的更多信息,请参考 XmlNode.SelectNodesXPathExpression.SetContext 方法。

  • uri
    要添加的命名空间。

异常

异常类型 条件

ArgumentException

prefix 的值为“xml”或“xmlns”。

ArgumentNullException

prefix 或 uri 的值为 空引用(在 Visual Basic 中为 Nothing)。

备注

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

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

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

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

前缀

命名空间

xmlns

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

xml

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

String.Empty

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

示例

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

Imports System
Imports System.Xml

Public Class Sample

    Public Shared Sub Main()

        Dim reader As XmlTextReader = Nothing

        Try

            ' Create the string containing the XML to read.
            Dim xmlFrag As String
            xmlFrag = "<book>" & _
                           "<title>Pride And Prejudice</title>" & _
                           "<author>" & _
                           "<first-name>Jane</first-name>" & _
                           "<last-name>Austen</last-name>" & _
                           "</author>" & _
                           "<curr:price>19.95</curr:price>" & _
                           "<misc>&h;</misc>" & _
                           "</book>"

            ' Create an XmlNamespaceManager to resolve namespaces.
            Dim nt As NameTable = New NameTable()
            Dim nsmgr As XmlNamespaceManager = 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.
            Dim context As XmlParserContext
            Dim subset As String = "<!ENTITY h 'hardcover'>"
            context = New XmlParserContext(nt, nsmgr, "book", Nothing, Nothing, subset, Nothing, Nothing, 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) Then
                    Console.WriteLine("{0} [{1}] = {2}", reader.NodeType, reader.Name, reader.Value)
                Else
                    Console.WriteLine("{0} [{1}]", reader.NodeType, reader.Name)
                End If
            End While

        Finally
            If Not (reader Is Nothing) Then
                reader.Close()
            End If
        End Try
    End Sub
End Class
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 = "<book>" +
                           "<title>Pride And Prejudice</title>" +
                           "<author>" +
                           "<first-name>Jane</first-name>" +
                           "<last-name>Austen</last-name>" +
                           "</author>" +
                           "<curr:price>19.95</curr:price>" +
                           "<misc>&h;</misc>" +
                           "</book>";

            // 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 = "<!ENTITY h 'hardcover'>";
            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

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

版本信息

.NET Framework

受以下版本支持:2.0、1.1、1.0

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

XmlNamespaceManager 类
XmlNamespaceManager 成员
System.Xml 命名空间