2010-06-22 45 views
13

讓孩子們的第一級我也有這樣的XMl如何通過LINQ

<root> 
    <list> 
     <list> 
      <topic></topic> 
      <topic></topic> 
     </list> 
     <topic></topic> 
     <topic></topic> 
    </list> 
    <topic></topic> 
    <topic></topic> 
    <topic></topic> 
</root> 

我需要得到孩子的第一級:

<list></list> 
<topic></topic> 
<topic></topic> 
<topic></topic> 

我嘗試做這樣的

var list = x.Descendants().Where(e => e.Name == "list" || e.Name == "topic"); 

但它返回所有主題和列表。

請幫忙! :)

回答

33

只需document.Root.Elements()應該工作。

基本上Descendants()遞歸,而Elements()只得到直接孩子。

+0

謝謝,喬恩! :) – podeig 2010-06-22 09:38:11

+0

@Jon Skeet - 你的意思是'Document.Root.Elements()'而不是'document.RootElement.Elements()'? – 2011-08-07 19:57:35

+0

@Anthony:是的,我懷疑是 - 編輯:) – 2011-08-07 20:20:07