LINQ to XML无法获取元素。

3

我正在尝试使用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");

但是它总是显示为空。我还尝试在名称中使用命名空间(当我悬停在名称上方时(上面:“return”),它告诉我可以使用{namespace}name来提供命名空间),因此它变成了“{ns}return”。但是那也没有返回任何内容。
如何从上面的xml中检索返回值?
编辑:我还尝试了这里的解决方案Reading data from XML,发生了同样的事情。我无法找到指定的元素。
2个回答

5

试试这个:

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

3
您可以使用LocalName来获取名称的未限定部分。
var returnValue = XDocument.Parse(xml).Descendants()
                           .FirstOrDefault(n => n.Name.LocalName == "return");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接