Seleccionar más de un nodo de XML utilizando LINQ
Pregunta
tengo tales XML
<root>
<content>
....
</content>
<index>
....
</index>
<keywords>
....
</keywords>
</root>
Pero necesito para seleccionar justa y nodos.
<content>
....
</content>
<index>
....
</index>
Me enteré de cómo seleccionar un solo nodo.
XElement Content = new XElement("content", from el in xml.Elements() select el.Element("content").Elements());
¿Cómo puedo obtener los dos nodos?
Solución
var elements =
from element in xml.Root.Elements()
where element.Name == "content" ||
element.Name == "index"
select element;
var newContentNode = new XElement("content", elements);
Otros consejos
Una vez que tenga el archivo XML cargado, se puede obtener todos los nodos de contenido a través de:
var cons = from con in xmlFile.Descendants("content");
y del mismo modo se puede obtener los nodos de índice como:
var idxs = from idx in xmlFile.Descendants("index")
No creo que se pueden consultar dos nodos utilizando una cadena de consulta.
El uso de lambda:
var elements = document
.Descendants()
.Where(element => element.Name == "content" || element.Name == "index");
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow