首頁 > 後端開發 > C++ > 為什麼在使用 XML 命名空間時我的 LINQ to XML 查詢傳回 Null?

為什麼在使用 XML 命名空間時我的 LINQ to XML 查詢傳回 Null?

Linda Hamilton
發布: 2025-01-19 02:22:08
原創
935 人瀏覽過

Why Does My LINQ to XML Query Return Null When Using XML Namespaces?

解決LINQ to XML中XML命名空間導致查詢結果為空的問題

本文探討了使用LINQ to XML處理包含XML命名空間的XML資料時,查詢結果傳回null的問題。 程式碼旨在從XML中提取數據,但由於命名空間的使用不當導致查詢失敗。

LINQ to XML的DescendantsElement方法接收XName參數。直接使用字串取代XName物件雖然可以自動轉換,但容易出錯。 為了解決這個問題,需要在使用元素名稱的字串表示之前,明確地使用XNamespace實例來指定命名空間:

<code class="language-csharp">XNamespace ns = "http://myvalue.com";
XNamespace nsa = "http://schemas.datacontract.org/2004/07/My.Namespace";

var elements = from data in xmlElements.Descendants(ns + "Result")
               select new
               {
                   TheBool = (bool)data.Element(nsa + "TheBool"),
                   TheId = (int)data.Element(nsa + "TheId"),
               };</code>
登入後複製

請注意Descendants方法中使用了nsElement方法中使用了nsa。 透過明確定義命名空間,可以確保目標元素正確,從而解決Descendants傳回null的問題。

以上是為什麼在使用 XML 命名空間時我的 LINQ to XML 查詢傳回 Null?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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