XmlNamespaceManager 類別

定義

解析、加入並移除集合的命名空間,並且為這些命名空間提供範圍管理。

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 方法
設定命名空間的範圍 PushScopePopScope 方法
檢查前置詞是否定義於目前範圍中 HasNamespace 方法
取得用來查詢前置詞與 URI 的名稱資料表 NameTable 屬性

若要將命名空間新增至命名空間管理員,您可以建立 XmlNamespaceManager 物件,然後使用 AddNamespace 方法。 預設的前置詞和命名空間配對會在建立時自動加入命名空間管理員內。

當您建立命名空間管理員時,您可以從 、 XsltContextXmlDocument 類別指定名稱資料表 XmlReader ,然後使用 AddNamespace 方法來新增命名空間。

您可以將 物件當作 參數提供給 XmlNamespaceManagerSelectNodes 類別的 或 SelectSingleNode 方法,以執行參考命名空間限定專案和屬性名稱的 XmlDocument XPath 查詢運算式。

命名空間管理員假設前置詞和命名空間已經經過驗證,且符合 W3C 命名空間規格 。 命名空間管理員不會執行任何驗證。

命名空間管理員會在使用 AddNamespace 方法加入字串時,以及使用 LookupNamespaceLookupPrefix 方法執行查閱時,將字串自動化。

命名空間管理員除了會加入和擷取命名空間之外,還會實作列舉型別支援。 您可以使用 建構,迴圈查看儲存在命名空間管理員 foreach 中的資訊。 例如,如果您建立名稱為 的 nsmanager 命名空間管理員,您可以使用 來逐一查看資料表 foreach (String prefix in nsmanager)

因為命名空間管理員會提供一個將前置詞和命名空間當做物件的字串比較功能,所以使用命名空間管理員的效能會比直接比較字串來得高。

下列程式碼範例示範如何系結 xsd 前置詞與 的 http://www.w3.org/2001/XMLSchema 命名空間 URI,並將其新增至命名空間管理員:

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");  

下列範例會 XmlNamespaceManager 使用 XML 讀取器的名稱資料表來建立 :

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

適用於

另請參閱