2011-06-27 93 views
3

一個的XDocument我有一個字符串以下XML:搜索使用LINQ

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

我想要做的是返回true或者利用虛假的天氣記錄/節點存在,其中控制的類型屬性爲2和文本等於Suppliers.aspx。

我想使用LINQ這一點,我不知道,我想我會需要一些LINQ表達式,搞不清...提前

感謝您的任何建議!

+0

赦免,但..你爲什麼還編輯你的問題,毀了你的XML代碼的格式? –

+0

對不起,這是我的第一個問題,我不知道我做了什麼......我想我刪除了標記標記,但答案使我的brokenglass很棒,謝謝 –

回答

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(); 
+0

這很快,非常感謝! –

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

是的,它使用XDocument.Parse(XMLString),但其他一切基本上都是一樣的,謝謝! –