Selecione mais de um nó de XML usando LINQ
Pergunta
Eu tenho esse xml
<root>
<content>
....
</content>
<index>
....
</index>
<keywords>
....
</keywords>
</root>
Mas eu preciso selecionar justos e nós.
<content>
....
</content>
<index>
....
</index>
Eu descobri como selecionar apenas um nó.
XElement Content = new XElement("content", from el in xml.Elements() select el.Element("content").Elements());
Como posso obter os dois nós?
Solução
var elements =
from element in xml.Root.Elements()
where element.Name == "content" ||
element.Name == "index"
select element;
var newContentNode = new XElement("content", elements);
Outras dicas
Depois de carregar o arquivo XML, você pode obter todos os nós de conteúdo:
var cons = from con in xmlFile.Descendants("content");
E da mesma forma você pode obter os nós do índice como:
var idxs = from idx in xmlFile.Descendants("index")
Eu não acho que você possa consultar dois nós usando uma string de consulta.
Usando Lambda:
var elements = document
.Descendants()
.Where(element => element.Name == "content" || element.Name == "index");
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow