Ling到XML 3.5和4.0之间的区别

时间:2011-07-29 10:26:05

标签: linq-to-xml

/*  @"C:\xml\xml2.xml"

<?xml version="1.0" encoding="utf-8"?>
<food>
<fruits>
<fruit>Apple</fruit>
<fruit>Orange</fruit>
<fruit>Melon</fruit>
<fruit>Watermelon</fruit>
</fruits>
</food>


string xml_path2 = @"C:\xml\xml2.xml";
            XDocument doc2 = XDocument.Load(xml_path2);
            var qry2 = doc2.Descendants("fruits").Select(n => n.Element("fruit").Value);
            foreach (var item in qry2) {
                Console.WriteLine(item);
            }

输出:仅显示Apple,而不是显示所有水果

我正在使用Visula Studio 2008和Net FrameWork 3.5。为什么会这样显示?

1 个答案:

答案 0 :(得分:1)

 doc2.Descendants("fruits").Select(n => n.Element("fruit").Value);

这会找到一个<fruits>元素,然后将Element(name)方法应用于它。 XContainer.Element已定义(我的重点):

  

获取具有指定XName的 第一个 (按文档顺序)子元素。

所以你只得到一个结果。