/* @"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。为什么会这样显示?
答案 0 :(得分:1)
doc2.Descendants("fruits").Select(n => n.Element("fruit").Value);
这会找到一个<fruits>
元素,然后将Element(name)
方法应用于它。
XContainer.Element
已定义(我的重点):
获取具有指定XName的 第一个 (按文档顺序)子元素。
所以你只得到一个结果。