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>()
.