gpt4 book ai didi

c# - XDocument.Element 在解析 xml 字符串时返回 null

转载 作者:数据小太阳 更新时间:2023-10-29 01:48:54 27 4
gpt4 key购买 nike

我有这个 xml 字符串:

<a:feed xmlns:a="http://www.w3.org/2005/Atom" 
xmlns:os="http://a9.com/-/spec/opensearch/1.1/"
xmlns="http://schemas.zune.net/catalog/apps/2008/02">
<a:link rel="self" type="application/atom+xml" href="/docs" />
<a:updated>2014-02-12</a:updated>
<a:title type="text">Chickens</a:title>
<a:content type="html">eat 'em all</a:content>
<sortTitle>Chickens</sortTitle>
... other stuffs
<offers>
<offer>
<offerId>8977a259e5a3</offerId>
... other stuffs
<price>0</price>
... other stuffs
</offer>
</offers>
... other stuffs
</a:feed>

并希望获得 <price> 的值但在我的代码中:

XDocument doc = XDocument.Parse(xmlString);
var a = doc.Element("a");
var offers = a.Element("offers");
foreach (var offer in offers.Descendants())
{
var price = offer.Element("price");
var value = price.Value;
}

doc.Element("a");返回空值。我尝试删除那行 offers也是空的。我的代码有什么问题以及如何获取 price 的值?谢谢

最佳答案

这是获取价格的正确方法:

var xdoc = XDocument.Parse(xmlString);
XNamespace ns = xdoc.Root.GetDefaultNamespace();

var pricres = from o in xdoc.Root.Elements(ns + "offers").Elements(ns + "offer")
select (int)o.Element(ns + "price");

请记住,您的文档具有默认命名空间,a 也是命名空间。

关于c# - XDocument.Element 在解析 xml 字符串时返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21727075/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com