2010-11-01 36 views
0
<Vehicle> 
    <CheckPoints ID="11"> 
    <Days Day="1">check</Days> 
    </CheckPoints> 
    <CheckPoints ID="10"> 
    <Days Day="1">check</Days> 
    </CheckPoints> 
</Vehicle> 

我想用LINQ查詢記錄。 我的問題是,我想迭代到每個節點並將CheckPoints ID與我的ID匹配,然後想要獲得當天的Days文本。 (根據正在進行的月份,每個CheckPoints將具有Max 31 Days節點)。 請幫忙。使用LINQ從XML中取回數據

+3

LINQ到XML:http://msdn.microsoft.com/en-us/library/bb387098.aspx – Martin 2010-11-01 12:16:12

+1

接受其他的問題! – Svisstack 2010-11-01 12:18:32

+0

你可以告訴我這個發現的副作用帶ID的CheckPoints,並寫一個新的節點的文字在其中? – Nipun 2010-11-04 08:56:07

回答

0

試試這個

var xmlstr = @"<Vehicle> <CheckPoints ID=""11""> <Days Day=""1"">check</Days> </CheckPoints> <CheckPoints ID=""11""> <Days Day=""2"">check</Days> </CheckPoints><CheckPoints ID=""10""> <Days Day=""1"">check</Days> </CheckPoints></Vehicle>"; 
var id=11; 
var currDay = DateTime.Now.Day; 
var xl = XElement.Load(new StringReader(xmlstr)); 
var resxml = from el in xl.Descendants("CheckPoints") 
      where Convert.ToInt32(el.Attribute("ID").Value) == id 
      select el into x 
      from ell in x.Descendants("Days") 
      where Convert.ToInt32(ell.Attribute("Day").Value) <= currDay 
      select ell; 

foreach (var xres in resxml) 
{ 
    Console.Write(xres.Value); 
} 
+0

感謝這個例子。但是我需要直到日期data.Like如果今天是第五,那麼我需要直到日期從XML數據5,因爲將有5個節點在每個CheckPoints – Nipun 2010-11-01 13:08:23

+0

@Nipun,「ell.Attribute(」日「)。價值)<= currDay」選擇所有的數據,直到今天....你可以運行這個,並檢查... – RameshVel 2010-11-01 14:05:14

+0

你可以告訴我這個發現的副作用帶有ID的CheckPoints和寫一個新的節點的文本在其中嗎?我的意思是說,我想寫在具有指定值的resxml中 – Nipun 2010-11-04 10:43:46