2011-06-08 36 views
0

我想查詢使用LINQ以下XML文件XMLLINQ到XML查詢使用descendatns

<table> 
<row> 
    <cell> 
    <content>x</content> 
    <cell> 
    <cell> 
    <content>y</content> 
    <cell> 
    <cell> 
    <foo> 
    <bar>x</bar> 
    </foo> 
    <cell> 
<row> 
</table> 

我試着去獲取有值「X」的後代所有細胞節點。在這個例子中兩個細胞節點應返回

回答

1

可以使用Any擴展方法,看看是否有細胞的後代具有正確的值。

XDocument doc = XDocument.Load("somefile.xml"); 
var cells = from cell in doc.Descendants("cell") 
      where cell.Descendants().Any(v => v.Value == "x") 
      select cell; 
+0

什麼是 「X」 元素下 「吧」? – Arief 2011-06-08 09:40:44

+0

我誤解了問題,我有固定的答案。 – Sven 2011-06-08 09:45:01

+0

我想到兩個結果(包括包含在酒吧X細胞) – markus 2011-06-08 09:46:46