我似乎总是遇到xpath轴表达式问题......
在某些表达式中,我使用../
来引用父节点,但这对test
表达式无效?或者我的语法错了?
<xsl:when test="../../[@status='current']">
我的目标是在xsl:when
内部应用一个属性,如果父级的父级具有值为“current”的状态属性。
编辑:self::parent/parent[@status='current']
是一个有效的xpath表达式,可能是我想要的,任何人都可以确认吗?我可能走得不够远。
答案 0 :(得分:11)
问题出在/[
。您可以将其更改为
../../self::*[@status='current']
答案 1 :(得分:7)
比choroba和Hansen更简单的解决方案是
../..[@status='current']
答案 2 :(得分:6)
您还可以使用以下内容:
parent::*/parent::*[@status='current']
答案 3 :(得分:3)
使用Xpath 2.0 :
../../@status eq 'current'
使用XPath 1.0 和 XPath 2.0 :
../../@status = 'current'