繁体   English   中英

LINQ to XML无法获取元素

[英]LINQ to XML can't get element

我正在尝试使用LINQ to XML从Web服务解析一个小的xml返回。 XML看起来像这样:

<ns:ResponseTest xmlns:ns="http://websvc.tst.com">
    <ns:return>true</ns:return>
</ns:ResponseTest>

在网上查找我发现这应该读取具有指定名称的第一个值:

var returnValue = XDocument.Parse(xml).Descendants().FirstOrDefault(n => n.Name == "return");

但它始终是空的。 我也尝试在名称中使用命名空间(当我将鼠标悬停在名称上方(上面:“返回”)时,它告诉我可以使用{namespace} name来提供命名空间),因此它是“{ns} return”。 然而,这也没有返回任何东西。

如何从上面的xml中检索返回值?

编辑:我也试过这里的解决方案从XML读取数据,同样的事情发生了。 我无法找到指定的元素。

试试这个:

XNamespace ns = "http://websvc.tst.com";
var returnValue = XDocument.Parse(xml).Descendants(ns + "return").FirstOrDefault();

您可以使用LocalName检索名称的非限定部分

var returnValue = XDocument.Parse(xml).Descendants()
                           .FirstOrDefault(n => n.Name.LocalName == "return");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM