C# 尝试获取所有子节点的值

C# 尝试获取所有子节点的值,c#,xml,linq-to-xml,C#,Xml,Linq To Xml,我的XML如下所示: <names> <goodnames> <name>Alpha</name> <name>Beta</name> </goodnames> <badnames> <name>blabla</name> </badnames> </names> 不幸的是

我的XML如下所示:

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

不幸的是,这只返回第一个元素,在本例中是Alpha。但是,我希望获得所有的name元素。

如果需要所有名称,则需要执行以下操作:

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;

选择元素**s**(“名称”)var goodnames =
    from el in doc.Root.Elements("goodnames")
    from n in el.Elements("name")
    select n.Value;