2011-07-12 14 views
5

Dado un XElement ¿hay alguna manera de averiguar el índice de ese elemento dentro del contenedor principal?Índice de Child XElement

Sé que debe haber pero no puedo entenderlo!

Gracias!

+0

El problema principal era que la consulta XPath era modificando la estructura del documento XML ... – Nick

Respuesta

9

Trate e.ElementsBeforeSelf().Count()

+0

Estoy usando 'XPathGetElement' que creo que está modificando la estructura del documento como parte de la consulta, por lo que el suyo siempre regresa a cero. ¿Algunas ideas? – Nick

+0

Si 'e.Parent' es válido, puedes probar' e.Parent.Elements(). TakeWhile (x => x! = E) .Count() '. – dahlbyk

+0

Esto (la solución original en la respuesta) funciona perfectamente si reemplazo mi llamada XPathGetElement con una declaración de Linq a XML equivalente. – Nick

1

Trate de usar .ToList().IndexOf() que devuelve el índice del objeto que pase en el ejemplo:.

var index = document.Elements().ToList().IndexOf(element); 
0

En VB

Dim Index As String = i.ToString.IndexOf(i.ToString)