从Xpath 2.0中的当前节点获取父级父级

med*_*iev 11 xml xslt xpath

我似乎总是遇到xpath轴表达式问题...

在某些表达式中,我习惯于../引用父节点,但对test表达式无效?或者我的语法错了?

<xsl:when test="../../[@status='current']">
Run Code Online (Sandbox Code Playgroud)

我的目标是在xsl:whenIF中应用一个属性,父级的父级具有值为"current"的status属性.

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

cho*_*oba 11

问题在于/[.你可以把它改成

../../self::*[@status='current']
Run Code Online (Sandbox Code Playgroud)


Mic*_*Kay 7

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

../..[@status='current']
Run Code Online (Sandbox Code Playgroud)


Mad*_*sen 6

您还可以使用以下内容:

parent::*/parent::*[@status='current']
Run Code Online (Sandbox Code Playgroud)