使用linq搜索xdocument

时间:2011-06-27 18:22:19

标签: linq lambda linq-to-xml

我从字符串中得到以下xml:

<XMLClient>
  <ClientData>
   <Control type=1>BtnSave</control>
   <Control type=2>Suppliers.aspx</control>
   ...
   ...
   ...
  </clientData>
</XMLClient>

我想要做的是使用天气记录/节点返回true或false,其中控件的type属性为2且text等于Suppliers.aspx。

我想使用linq这个,我不知道我想我需要一些linq表达,不太确定......

提前感谢任何建议!

2 个答案:

答案 0 :(得分:5)

这样的事情应该有效:

XDocument doc = XDocument.Load("test.xml");

bool nodeExists = doc.Descendants("Control")
                     .Where(x => x.Attribute("type") != null && 
                                 x.Attribute("type").Value == "2" && 
                                 x.Value == "Suppliers.aspx")
                     .Any();

答案 1 :(得分:2)

XDocument doc = XDocument.Load("xmlFile");
var result = doc.Root.Descendants("Control")
                     .Any(c => c.Attribute("type") != null && 
                               c.Attribute("type").Value == "2" && 
                               c.Value == "Suppliers.aspx");