【问题标题】:LINQ to XML can't get elementLINQ to XML 无法获取元素
【发布时间】:2017-03-24 14:11:20
【问题描述】:

我正在尝试使用 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 的解决方案,同样的事情发生了。我无法让它找到指定的元素。

【问题讨论】:

    标签: c# xml linq


    【解决方案1】:

    试试这个:

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

    【讨论】:

      【解决方案2】:

      您可以使用LocalName 检索名称的不合格部分

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多