0

我在使用 LINQ 查询 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();

感谢您的帮助 - 扩展解释会很棒

4

1 回答 1

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();
于 2012-10-25T09:41:48.913 回答