XmlNamespaceManager 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
解析集合的命名空间、向集合添加命名空间和从集合中移除命名空间,以及提供对这些命名空间的范围管理。
public ref class XmlNamespaceManager : System::Collections::IEnumerable, System::Xml::IXmlNamespaceResolver
public ref class XmlNamespaceManager : System::Collections::IEnumerable
public class XmlNamespaceManager : System.Collections.IEnumerable, System.Xml.IXmlNamespaceResolver
public class XmlNamespaceManager : System.Collections.IEnumerable
type XmlNamespaceManager = class
interface IEnumerable
interface IXmlNamespaceResolver
type XmlNamespaceManager = class
interface IEnumerable
type XmlNamespaceManager = class
interface IXmlNamespaceResolver
interface IEnumerable
Public Class XmlNamespaceManager
Implements IEnumerable, IXmlNamespaceResolver
Public Class XmlNamespaceManager
Implements IEnumerable
- 继承
-
XmlNamespaceManager
- 派生
- 实现
注解
有关如何在 XML 文档中声明和使用命名空间的一般信息,请参阅 XML 文档中的“管理命名空间”。
XmlNamespaceManager 将前缀和命名空间存储为字符串。 下面是可以使用此类执行的管理和查找任务的摘要。 有关更多信息和示例,请遵循指向每个方法或属性的引用页的链接。
功能 | 使用 |
---|---|
添加命名空间 | AddNamespace 方法 |
移除命名空间 | RemoveNamespace 方法 |
查找默认命名空间的 URI | DefaultNamespace 属性 |
查找命名空间前缀的 URI | LookupNamespace 方法 |
查找命名空间 URI 的前缀 | LookupPrefix 方法 |
获取当前节点中命名空间的列表 | GetNamespacesInScope 方法 |
限定命名空间的范围 | PushScope 和 PopScope 方法 |
检查是否在当前范围内定义了前缀 | HasNamespace 方法 |
获取用于查找前缀和 URI 的名称表 | NameTable 属性 |
若要将命名空间添加到命名空间管理器,请创建一个 XmlNamespaceManager 对象,然后使用该方法 AddNamespace 。 创建时默认前缀和命名空间对自动添加到命名空间管理器。
创建命名空间管理器时,可以从或XmlDocumentXsltContext类指定名称表XmlReader,然后使用AddNamespace该方法添加命名空间。
可以将对象作为参数SelectNodes提供给XmlNamespaceManager类的或SelectSingleNode方法,以执行引用命名空间限定元素和属性名称的 XmlDocument XPath 查询表达式。
命名空间管理器假定已验证前缀和命名空间并符合 W3C 命名空间 规范。 命名空间管理器不执行任何验证。
命名空间管理器使用 AddNamespace 该方法添加字符串时以及使用 LookupNamespace 或 LookupPrefix 方法执行查找时,会原子化字符串。
命名空间管理器除了添加和检索命名空间外,还实现枚举支持。 可以使用构造循环访问命名空间管理器 foreach
中保存的信息。 For example, if you create a namespace manager with the name nsmanager
, you can iterate through the table by using foreach (String prefix in nsmanager)
.
由于命名空间管理器提供将前缀和命名空间作为对象的字符串比较功能,因此与字符串的直接比较相比,使用命名空间管理器可以提高性能。
下面的代码示例演示如何将前缀 xsd
与命名空间 URI http://www.w3.org/2001/XMLSchema 绑定,并将其添加到命名空间管理器:
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema")
nsmgr.AddNamespace("xsd", "http://www.w3.org/2001/XMLSchema");
然后, LookupNamespace 可以使用此方法查找命名空间:
nsmgr.LookupNamespace("xsd")
nsmgr.LookupNamespace("xsd");
以下示例使用 XML 读取器的名称表创建一个 XmlNamespaceManager :
Dim reader As New XmlTextReader("myfile.xml")
Dim nsmanager As New XmlNamespaceManager(reader.NameTable)
nsmanager.AddNamespace("msbooks", "www.microsoft.com/books")
nsmanager.PushScope()
nsmanager.AddNamespace("msstore", "www.microsoft.com/store")
While reader.Read()
Console.WriteLine("Reader Prefix:{0}", reader.Prefix)
Console.WriteLine("XmlNamespaceManager Prefix:{0}",
nsmanager.LookupPrefix(nsmanager.NameTable.Get(reader.NamespaceURI)))
End While
XmlTextReader reader = new XmlTextReader("myfile.xml");
XmlNamespaceManager nsmanager = new XmlNamespaceManager(reader.NameTable);
nsmanager.AddNamespace("msbooks", "www.microsoft.com/books");
nsmanager.PushScope();
nsmanager.AddNamespace("msstore", "www.microsoft.com/store");
while (reader.Read())
{
Console.WriteLine("Reader Prefix:{0}", reader.Prefix);
Console.WriteLine("XmlNamespaceManager Prefix:{0}",
nsmanager.LookupPrefix(nsmanager.NameTable.Get(reader.NamespaceURI)));
}
构造函数
XmlNamespaceManager(XmlNameTable) |
使用指定的 XmlNamespaceManager 初始化 XmlNameTable 类的新实例。 |
属性
DefaultNamespace |
获取默认命名空间的命名空间 URI。 |
NameTable |
获取与此对象关联的 XmlNameTable。 |
方法
AddNamespace(String, String) |
将给定的命名空间添加到集合。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
GetEnumerator() |
返回一个枚举数,将使用该枚举数循环访问 XmlNamespaceManager 集合中的命名空间。 |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetNamespacesInScope(XmlNamespaceScope) |
获取被可用于枚举当前范围内的命名空间的前缀键控的命名空间名称的集合。 |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
HasNamespace(String) |
获取一个值,该值指示所提供的前缀是否具有为当前推送的范围定义的命名空间。 |
LookupNamespace(String) |
获取指定前缀的命名空间 URI。 |
LookupPrefix(String) |
查找为给定的命名空间 URI 声明的前缀。 |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
PopScope() |
将命名空间范围弹出堆栈。 |
PushScope() |
将命名空间范围推送到堆栈上。 |
RemoveNamespace(String, String) |
为给定的前缀移除给定的命名空间。 |
ToString() |
返回表示当前对象的字符串。 (继承自 Object) |
扩展方法
Cast<TResult>(IEnumerable) |
将 IEnumerable 的元素强制转换为指定的类型。 |
OfType<TResult>(IEnumerable) |
根据指定类型筛选 IEnumerable 的元素。 |
AsParallel(IEnumerable) |
启用查询的并行化。 |
AsQueryable(IEnumerable) |
将 IEnumerable 转换为 IQueryable。 |