如何通过XText值选择XElements?

时间:2013-06-03 00:26:08

标签: c# xml linq

<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");

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

谢谢!

1 个答案:

答案 0 :(得分: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();