xdocument tutorial query net manejo leer example ejemplos create c# xml linq-to-xml

tutorial - xdocument c# example



XDocument.Descendants() versus DescendantNodes() (2)

Descendants solo devuelven elements . DescendantNodes devuelve todos los nodes (incluidos XComments, XText, XDocumentType, etc.).

Considere seguir xml para ver la diferencia:

<root> <!-- comment --> <foo> <bar value="42"/>Oops! </foo> </root>

Descendants devolverán 3 elementos ( root , foo , bar ). DescendantNodes devolverá estos tres elementos y otros 2 nodos: texto y comentario.

He visto los usos de Nodes () vs DescendantNodes ()? para ver la diferencia entre .Nodes() y .DescendantNodes() pero cuál es la diferencia entre:

XDocument.Descendants () y XDocument.DescendantNodes ()?

var xmlDoc = XDocument.Load(@"c:/Projects/Fun/LINQ/LINQ/App.config"); var descendants = xmlDoc.Descendants(); var descendantNodes = xmlDoc.DescendantNodes(); foreach (var d in descendants) Console.WriteLine(d); foreach (var d in descendantNodes) Console.WriteLine(d);


Descendants descendientes solo devuelven elementos descendientes, mientras que los nodos descendentes devuelven todos los tipos de nodos (elementos, atributos, nodos de texto, comentarios, etc.)

Entonces, los Descendants() son equivalentes a los DescendantNodes().OfType<XElement>() .