Resumen Exec - que desea:
xml.Elements.Select(function(element) new XElement(element.Name,element.Attributes))
Primera respuesta:
XElement.Descendants
, o se trata de una pregunta con trampa? : P There's an example of usage of Descendants here
respuesta revisada, gracias Tormod - algo que se sentía mal !:
Elementos da descendientes directos, ya que usted está buscando. Descendientes da la jerarquía completa [como alegas que hace Elements]. .! (El ejemplo que vincula a deja esto claro disculpas por la confusión
Así que, finalmente, lo que estás buscando es (esta vez en VB):
Dim xml = <Root>
<Parent id="1">
<Child>Thomas</Child>
</Parent>
<Parent id="2">
<Child>Tim</Child>
<Child>Jamie</Child>
</Parent>
</Root>
REM All nodes two levels down in the hierarchy
Dim level2Nodes = xml.Elements.SelectMany(function(element) element.Elements)
level2Nodes.Dump
REM All Child nodes, no matter where they are:
Dim children = xml.Descendants("Child")
Cada uno de los cuales dará lugar a que el 3 `` `elementos para diferentes razones, según se regulan en los REM
(pasta de lo anterior directamente en LINQPad en modo de declaración VB)
ahora veo lo que podría usted ser confuso -. cuando se utiliza elementos y miro en un visualizador, todavía estás ver a los niños: -
Dim parents = xml.Elements
Si sólo desea los nombres reales, puede usar algo como:
Dim parentNames = xml.Elements.Select(function(element) element.Name)
Tenga en cuenta que en cada uno de estos casos, que está recibiendo dos resultados.
Si realmente quiere que se deben eliminar los Chidren, que desea:
Dim parentElements = xml.Elements.Select(function(element) new XElement(element.Name,element.Attributes))
¿Se puede extender su pregunta para mostrar lo que realmente está buscando?
¿Se puede editar con el encantamiento real que terminó usando? Por cierto, descargue LINQPAd y pruébelo: es genial para probar cosas como esta. Consulte ejemplos en http://www.dimecasts.net/Casts/ByTag/LinqPad –