2012-10-25 27 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