首頁 > 後端開發 > C++ > 如何使用 LINQ to XML 正確解析帶有命名空間的 XML?

如何使用 LINQ to XML 正確解析帶有命名空間的 XML?

Linda Hamilton
發布: 2025-01-19 02:11:13
原創
735 人瀏覽過

How to Correctly Parse XML with Namespaces Using LINQ to XML?

在LINQ to XML處理XML命名空間

處理包含命名空間的XML資料時,正確處理命名空間對於檢索和操作所需元素至關重要。以下是如何使用LINQ to XML遍歷包含命名空間的XML:

提供的範例程式碼:

<code class="language-csharp">string theXml = @"<Response xmlns=""http://myvalue.com""><Result xmlns:a=""http://schemas.datacontract.org/2004/07/My.Namespace"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance""><a:TheBool>true</a:TheBool><a:TheId>1</a:TheId></Result></Response>";

XDocument xmlElements = XDocument.Parse(theXml);

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

當XML字串中使用命名空間時,此程式碼無法正確解析XML,導致出現空值。為了解決這個問題,我們需要在LINQ查詢中明確指定XML命名空間。

在LINQ查詢中定義XML命名空間,可以使用XNamespace物件。此物件可讓您建立具有適當命名空間前綴和URI的XName實例。

以下是修正後的程式碼:

<code class="language-csharp">string theXml = @"<Response xmlns=""http://myvalue.com""><Result xmlns:a=""http://schemas.datacontract.org/2004/07/My.Namespace"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance""><a:TheBool>true</a:TheBool><a:TheId>1</a:TheId></Result></Response>";

XDocument xmlElements = XDocument.Parse(theXml);
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>
登入後複製

在修正後的程式碼中,我們先使用命名空間URI宣告XNamespace物件nsnsa。然後,在DescendantsElement查詢中,我們指定帶有命名空間前綴的XName。透過這種方式,LINQ to XML可以正確識別和存取指定命名空間中的元素。

以上是如何使用 LINQ to XML 正確解析帶有命名空間的 XML?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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