2012-04-28 64 views
0

訪問數據我有一個包含像Linq查詢從XML

<root> 
    <gp> 
     <i>1</i> 
     <i>3</i> 
     <i>5</i> 
    </gp> 
    <gp> 
     <i>5</i> 
     <i>6</i> 
    </gp> 
    . 
    . 
</root> 

現在我想編寫一個查詢由我會得到其中包含價值5 <i>元素中的所有gp元素的一些元素一個XML文件? `

+0

IEnumerable的 variable = document.Elements(「gp」)。其中(p => p。現在我在這裏被卡住了,因爲這裏我們必須迭代元素也 – gaurav 2012-04-28 18:56:54

回答

2
var results = from gp in doc.Descendants("gp") 
       where gp.Elements("i").Any(i => (int)i == 5) 
       select gp 

而在基於方法的語法:

var results = doc.Descendants("gp").Where(gp => gp.Elements("i").Any(i => (int)i == 5)); 
+0

我認爲使用'i.value ==「5」'會更好,我不認爲你可以將XElement轉換爲int。 – 2012-04-28 19:00:24

+1

@ErikPhilips:是的,你可以嘗試一下 – BrokenGlass 2012-04-28 19:02:32

+0

@ErikPhilips:是的,你可以。而不僅僅是int:http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.aspx – MarcinJuraszek 2012-04-28 19:03:24