试图获取所有子节点的值

时间:2014-03-06 12:21:38

标签: c# xml linq-to-xml

我的XML看起来像这样:

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

现在我试图获取属于好名或坏名的所有子节点的值。我到目前为止尝试的代码是:

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

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

1 个答案:

答案 0 :(得分: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;