2017-03-24 143 views
3

我想解析从Web服务使用LINQ到XML的一个小的XML返回。该XML看起来像这样:LINQ to 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}名称来提供名称空间),因此它是“{ns} return”。但是,这也没有返回任何东西。

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

编辑:我也试过这里的解决方案Reading data from XML和发生同样的事情。我无法找到它指定的元素。

回答

4

试试这个:

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

这做到了的不合格部分!谢谢! –

3

您可以使用LocalName检索名称

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