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 方法。 預設的前置詞和命名空間配對會在建立時自動加入命名空間管理員內。
當您建立命名空間管理員時,您可以從 、 XsltContext 或 XmlDocument 類別指定名稱資料表 XmlReader ,然後使用 AddNamespace 方法來新增命名空間。
您可以將 物件當作 參數提供給 XmlNamespaceManagerSelectNodes 類別的 或 SelectSingleNode 方法,以執行參考命名空間限定專案和屬性名稱的 XmlDocument XPath 查詢運算式。
命名空間管理員假設前置詞和命名空間已經經過驗證,且符合 W3C 命名空間規格 。 命名空間管理員不會執行任何驗證。
命名空間管理員會在使用 AddNamespace 方法加入字串時,以及使用 LookupNamespace 或 LookupPrefix 方法執行查閱時,將字串自動化。
命名空間管理員除了會加入和擷取命名空間之外,還會實作列舉型別支援。 您可以使用 建構,迴圈查看儲存在命名空間管理員 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。 |