使用LINQ从XML中选择多个节点

时间:2010-05-12 06:14:49

标签: c# xml linq xelement

我有这样的XML

<root>
    <content>
        ....
    </content>
    <index>
        ....
    </index>
    <keywords>
        ....
    </keywords>
</root>

但我需要选择just和nodes。

<content>
    ....
</content>
<index>
    ....
</index>

我发现了如何只选择一个节点。

XElement Content = new XElement("content", from el in xml.Elements() select el.Element("content").Elements());

如何获得两个节点?

3 个答案:

答案 0 :(得分:6)

var elements = 
    from element in xml.Root.Elements()
    where element.Name == "content" ||
          element.Name == "index"
    select element;
var newContentNode = new XElement("content", elements);

答案 1 :(得分:1)

加载xml文件后,您可以通过以下方式获取所有内容节点:

var cons = from con in xmlFile.Descendants("content");

同样可以将索引节点作为:

var idxs = from idx in xmlFile.Descendants("index")

我认为您不能使用一个查询字符串查询两个节点。

答案 2 :(得分:1)

使用lambda:

    var elements = document
        .Descendants()
        .Where(element => element.Name == "content" || element.Name == "index");