首頁 > 後端開發 > C++ > XML命名空間如何影響「SelectSingleNode」以及如何正確選擇節點?

XML命名空間如何影響「SelectSingleNode」以及如何正確選擇節點?

Susan Sarandon
發布: 2025-01-07 20:59:42
原創
231 人瀏覽過

How Does XML Namespace Affect `SelectSingleNode` and How Can I Correctly Select Nodes?

使用命名空間導覽 XML:SelectSingleNode 挑戰

使用包含命名空間的 XML 文件時,.NET 中的標準 SelectSingleNode 方法可能會出現意外行為。 這是因為像 //Compile 這樣的簡單 XPath 表達式本身並不理解命名空間。

我們舉個例子來說明:

<code class="language-xml"><project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <itemgroup>
    <compile include="clsWorker.cs"/>
  </itemgroup>
</project></code>
登入後複製

嘗試使用 <compile> 選擇 xmldoc.SelectSingleNode("//Compile") 節點將回傳 null。 命名空間宣告 xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 是罪魁禍首。

解:利用XmlNamespaceManager

的力量

在命名空間 XML 中正確選擇節點的關鍵是利用 XmlNamespaceManager 類別。此類別可讓您明確定義命名空間前綴及其對應的 URI。

以下是修改程式碼的方法:

<code class="language-csharp">XmlNamespaceManager ns = new XmlNamespaceManager(xmldoc.NameTable);
ns.AddNamespace("msbld", "http://schemas.microsoft.com/developer/msbuild/2003");
XmlNode node = xmldoc.SelectSingleNode("//msbld:Compile", ns);</code>
登入後複製

我們建立一個 XmlNamespaceManager,加入命名空間映射(「msbld」作為指定 URI 的前綴),然後將此管理器傳遞給 SelectSingleNode。 XPath 表達式 //msbld:Compile 現在可以正確辨識定義的命名空間內的節點。 即使在複雜的命名空間 XML 結構中,這種方法也能確保準確的節點選擇。

以上是XML命名空間如何影響「SelectSingleNode」以及如何正確選擇節點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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