12

我似乎总是对 xpath 轴表达式有疑问......

在某些表达式中,我曾经引用父节点,但这对表达式../无效吗?test还是我的语法错了?

<xsl:when test="../../[@status='current']">

我的目标是在xsl:whenIF 中应用一个属性,父母的父母有一个值为“当前”的状态属性。

编辑:self::parent/parent[@status='current']是一个有效的 xpath 表达式,可能是我想要的,有人可以确认吗?我可能还不够远。

4

4 回答 4

12

问题出在/[. 您可以将其更改为

../../self::*[@status='current']
于 2012-08-06T18:51:31.410 回答
7

比 choroba 和 Hansen 更简单的解决方案是

../..[@status='current']
于 2012-08-06T21:00:28.787 回答
6

您还可以使用以下内容:

parent::*/parent::*[@status='current']
于 2012-08-06T19:22:34.947 回答
3

使用 Xpath 2.0

 ../../@status eq 'current'

使用 XPath 1.0XPath 2.0

 ../../@status = 'current'
于 2012-08-07T01:50:58.873 回答