2011-07-29 73 views
0
/* @"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); 
      } 

輸出之間的區別:只顯示蘋果,而不是顯示所有的水果凌XML NF 3.5和4.0

我使用Visula Studio 2008和.NET框架3.5。它爲什麼表現如此?

回答

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

這將找到一個<fruits>元素,然後將其應用在Element(name)方法吧。 XContainer.Element定義(我的重點):

獲取具有指定的XName的第一(按文檔順序)子元素。

所以你只得到一個結果。