在.net中如何找到元素节点的简单路径

时间:2009-06-03 13:15:12

标签: .net xml

假设:

通过调用XmlDocument.GetSingleNode方法得到的xmlnode, 你知道节点是一个元素,

如果你想找到那个元素的简单路径,那么有什么比攀登树更直接,直到你到达根节点并构建路径为止?这不是那么难,我只是期望有一个现有的方法/属性来取回代表路径的字符串。

我可以看到“简单路径”可能不是一个易于理解的术语,我的意思是以“/”开头的以斜线分隔的元素列表,使用子轴,导致我手头的节点。

由于

3 个答案:

答案 0 :(得分:1)

我不知道有这样做的内置方法,我也没有看到这个好处。

因为如果文档可以更改,通过索引标识节点是不可靠的,那么如何以通用方式识别它?如果你想保持一个运行时指针指向一个没有改变的文件上的节点,你不需要遍历树来找到它,因为你可以只保留一个XPathNavigator或者对XmlElement或其他任何东西的引用。回到节点。

答案 1 :(得分:1)

没有简单明了的方法或库函数可以帮到你。但请记住,如果文档被修改,您计算的任何先前路径可能无效。此外,如果XML文档允许元素或其任何祖先在父元素中出现多次,则需要跟踪该元素的特定索引。

听起来像是一个有用的小扩展方法。

答案 2 :(得分:1)

如果要识别当前节点的文档唯一路径,问题将是,在树的每个级别上,您必须足够了解该节点上的所有节点level(唯一属性[preferred]或index)唯一标识节点。

因此,对于给定的模式,您可以构建它,但没有通用方法。