在XPath中获取父元素名称

时间:2012-02-10 22:10:54

标签: dom xpath

我试图弄清楚如何从文本节点的范围中获取父级的名称。

//text()[name(parent)='p']

如何获取当前节点的父节点的名称?

3 个答案:

答案 0 :(得分:14)

如果您正在尝试测试该名称,那么您几乎已经拥有了它:

//text()[name(parent::*)='p']

如果您要返回名称:

name(//text()/parent::*)

答案 1 :(得分:4)

仅供参考,术语点:文本节点不是元素。

无论如何,选择当前节点的父节点的最简洁方法是..

因此,当前节点的父元素的名称(可以是文本节点)是name(..)

将其替换为XPath表达式:

//text()[name(..)='p']

但是,写一个不那么迂回的方式就是

//p/text()

(假设文档中的p元素没有名称空间前缀)。无论哪种方式,您都要选择所有文本节点,这些节点是名为p的元素的子元素。

答案 2 :(得分:2)

//text/..[@name='p']

只要父级<text>属性为name,这将获得p个节点的所有父级。