子 XElement 的索引

Posted

技术标签:

【中文标题】子 XElement 的索引【英文标题】:Index of Child XElement 【发布时间】:2011-10-03 12:46:33 【问题描述】:

给定一个XElement,有没有办法在父容器中找出该元素的索引?

我知道一定有,但我就是想不通!

谢谢!

【问题讨论】:

主要问题是 XPath 查询正在修改 XML 文档结构... 【参考方案1】:

试试e.ElementsBeforeSelf().Count()

【讨论】:

我正在使用XPathGetElement,我认为它正在修改文档的结构作为查询的一部分,因此它始终返回零。有什么想法吗? 如果e.Parent有效,你可以试试e.Parent.Elements().TakeWhile(x => x != e).Count() 如果我用等效的 Linq To XML 语句替换我的 XPathGetElement 调用,这(答案中的原始解决方案)可以完美运行。【参考方案2】:

尝试使用.ToList().IndexOf(),它返回您传入的对象的索引。示例:

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

【讨论】:

【参考方案3】:

在 VB 中

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

【讨论】:

以上是关于子 XElement 的索引的主要内容,如果未能解决你的问题,请参考以下文章

子 XElement 的索引

对 XElement 的子节点的索引访问

如何将子元素作为解码字符串添加到 XElement?

如何确定 XElement.Elements() 是不是包含具有特定名称的节点?

c# Elements of elements using XElement

删除没有子元素的 xelement