我有这样XML

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

但我需要只选择和节点。

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

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

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

我怎样才能得到这两个节点?

有帮助吗?

解决方案

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

其他提示

一旦你的XML文件加载,可以打通所有的内容节点:

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

和类似地可以得到的索引节点为:

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

我不认为你可以查询使用一个查询字符串的两个节点。

使用lambda:

    var elements = document
        .Descendants()
        .Where(element => element.Name == "content" || element.Name == "index");
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top