2014-03-06 65 views
0

我的XML看起來像這樣:試圖讓所有的孩子的價值觀節點

<names> 
    <goodnames> 
     <name>Alpha</name> 
     <name>Beta</name> 
    </goodnames> 
    <badnames> 
     <name>blabla</name> 
    </badnames> 
</names> 

現在我試圖讓屬於goodnames或badnames所有子節點的值。我試過的代碼是這樣的:

var goodnames = from el in doc.Root.Elements("goodnames") select el.Element("name"); 

不幸的是,這隻返回第一個元素,在這個例子中是Alpha。不過,我想獲得所有名稱元素。

+0

'選擇el.Element * * s **(「name」);' –

回答

1

如果你想所有的名字,你需要這樣做:

var allNames = 
    from e in doc.Root.Descendants("name") 
    select e.Value; 

如果你只是想好名字還是壞名,嘗試這樣的事情:

var goodnames = 
    from el in doc.Root.Elements("goodnames") 
    from n in el.Elements("name") 
    select n.Value; 
+0

謝謝,你的第二個建議正是我所期待的。 – Haris