LINQ to XML を使用すると、名前空間宣言を含む XML を解析するのが困難になる場合があります。
次の XML コードを考えてみましょう:
<code class="language-xml"><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></code>
この XML を解析するには、次のコードを使用できます:
<code class="language-csharp">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>
Descendants
内での ns
の使用と、Elements
内での nsa
の使用に注意してください。これらの名前空間により、LINQ to XML メソッドが正しい要素を識別できるようになります。
以上がLINQ to XML を使用して名前空間を使用して XML を効果的に解析するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。