2012-10-25 120 views
0

我無法與LINQ查詢XML並不能解決LINQ XML的讀取XML數據

我試圖提取元素值

這裏是XML

<response> 
    <make>DODGE</make> 
    <make>CHRYSLER</make> 
    <make>JEEP</make> 
    <make>RAM</make> 
    .......etc 
</response> 

下面是代碼我到目前爲止...

 XElement parsedXml3 = XElement.Parse(xml3); 
     var query2 = from m in parsedXml3.Descendants("response") 
        select m.Elements("make").Select(e => e.Value); 
     List<string> ls = new List<string>(); 
     foreach (var o in query2) 
     { 
      ls = o.ToList(); 
     } 
     ls.Sort(); 

感謝您的幫助 - 擴展解釋將是巨大

回答

0

試試這個。

XElement parsedXml3 = XElement.Parse(xml3); //parse your xml string 

沒有必要使用parsedXml3.Descendants("response")因爲反應是根節點這裏

var makes= parsedXml3.Elements("make") //Get All make Elements 
      .Select(x=>x.Value).ToList(); //Select Value from make Element 
             //and Store in List<string> 
makes.Sort(); 
foreach (var make in makes) 
{ 
    Console.WriteLine(make); 
} 

,或者你可以修改

XElement parsedXml3 = XElement.Parse(xml3); 
var ls= (from m in parsedXml3.Descendants("make") 
      select m.Value).ToList(); 

//List<string> ls = new List<string>(); 
//foreach (var o in query2) 
//{ 
// ls.Add(o); 
//} 
ls.Sort(); 
+0

您的代碼這是一個很好的解釋!非常感謝您的寶貴時間。我對如何處理「根節點」有點困惑。 – user1764146