2011-07-12 51 views
5

鉴于XElement有没有办法找出父容器内的元素索引?儿童XElement索引

我知道必须有,但我无法弄清楚!

谢谢!

+0

的主要问题是,XPath查询是修改XML文档结构... – Nick

回答

9

尝试e.ElementsBeforeSelf().Count()

+0

我正在使用'XPathGetElement',我认为这是修改文档的结构作为查询的一部分,所以t他总是归零。有任何想法吗? – Nick

+0

如果'e.Parent'有效,你可以尝试'e.Parent.Elements()。TakeWhile(x => x!= e).Count()'。 – dahlbyk

+0

如果我用等效的Linq To XML语句替换XPathGetElement调用,这(原答案中的原始解决方案)完美工作。 – Nick

1

尝试使用.ToList().IndexOf()返回你在传递对象的索引,例如:

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

在VB

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