Выберите больше, чем один узел из XML с помощью LINQ
Вопрос
У меня есть такой 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")
Я не думаю, что вы можете запрашивать два узла, используя одну строку запроса.
Использование лямбда:
var elements = document
.Descendants()
.Where(element => element.Name == "content" || element.Name == "index");
Не связан с StackOverflow