首頁 > 後端開發 > C++ > 如何在C#中使用XPATH與默認名稱空間?

如何在C#中使用XPATH與默認名稱空間?

Mary-Kate Olsen
發布: 2025-01-29 08:17:13
原創
323 人瀏覽過

How to Use XPath with a Default Namespace in C#?

在C#中使用默認命名空間XPath

處理包含默認命名空間的XML文檔時,使用C#中的XPath選擇節點可能會遇到挑戰。這是因為XPath表達式通常需要顯式聲明命名空間才能識別文檔中的元素和屬性。

在提供的示例中,代碼嘗試使用XPathNavigator從具有默認命名空間的XML文檔中選擇節點。但是,如果不指定命名空間,則選擇將不會產生任何結果。

解決方案:

解決此問題的方法是在XPath表達式中包含默認命名空間。這可以通過使用XmlNamespaceManager將命名空間前綴與命名空間URI關聯來實現。以下是更新後的代碼版本:

XmlElement el = ...; //TODO
XmlNamespaceManager nsmgr = new XmlNamespaceManager(
    el.OwnerDocument.NameTable);
nsmgr.AddNamespace("x", el.OwnerDocument.DocumentElement.NamespaceURI);
var nodes = el.SelectNodes(@"/x:outerelement/x:innerelement", nsmgr);
登入後複製

在此更新後的代碼中:

  • 獲取對根元素(XmlElement el)的引用。
  • 創建一個XmlNamespaceManager來管理命名空間前綴。
  • 將命名空間前綴“x”映射到文檔根元素的命名空間URI。
  • XPath表達式現在在元素名稱之前包含前綴“x”,這顯式指定了默認命名空間。

通過使用指定的命名空間前綴,XPath表達式可以正確識別和選擇XML文檔中的所需節點。此方法確保在選擇過程中適當考慮和解析命名空間。

以上是如何在C#中使用XPATH與默認名稱空間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板