0
<root>
 <descriptor>
  <content name="test">
   <foo>
     <bar>someValue</bar>
   </foo>
 </content>
</descriptor>
</root>

鉴于这个简单的 XML 示例,如果属性不为 null 并且它包含一个值等于“someValue”的子“foo”,我如何选择所有“descriptor”元素?

var elements = this.Descendants("descriptor")
              .Where(d => d.Element("content").Attribute("name") != null)
              .Where(d => d.Element("bar").Value == "someValue");

我希望结果是“描述符”的集合。

谢谢!

4

1 回答 1

0

像这样的东西会起作用:

var elements = this.Descendants("descriptor")
                   .Where(d => d.Element("content").Attribute("name") != null &&
                               d.Descendants("foo").Any(x => (string) x.Element("bar") == "someValue")))
                   .ToList();
于 2013-06-03T00:35:15.030 回答