首页 >后端开发 >C++ >如何使用 LINQ to XML 有效地解析具有命名空间的 XML?

如何使用 LINQ to XML 有效地解析具有命名空间的 XML?

Barbara Streisand
Barbara Streisand原创
2025-01-19 02:09:09876浏览

How Can I Effectively Parse XML with Namespaces Using LINQ to XML?

使用 LINQ to XML 解析包含命名空间声明的 XML

使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn