XSLT检查兄弟节点是否是某个元素

时间:2017-12-14 18:37:41

标签: xml xslt xpath

我试图在模板中使用变量来获取祖先的兄弟,然后如果兄弟姐妹是某个元素,我想做点什么。

我能够正确地抓住兄弟姐妹,但是当我使用if来检查节点是否是我想要的元素时,它永远不会被击中。我的问题是什么,如果它没有找到什么时候兄弟元素是什么?想要的元素'?

<xsl:template match="deltaxml:text[@deltaxml:deltaV2='A']">
    <xsl:variable name="nextVal" select="ancestor::*:textGroup/following-sibling::*[1]"/>
    <xsl:if test="$nextVal = 'desiredElement'">
         <!-- do something -->

1 个答案:

答案 0 :(得分:2)

使用<xsl:if test="$nextVal/self::desiredElement">或者该元素与<xsl:if test="$nextVal/self::deltaxml:desiredElement">以外的名称相同。如果要对元素名称进行字符串比较,也可以比较local-name($nextVal) = 'desiredElement'。您当前的尝试会将元素的字符串值/内容与字符串desiredElement进行比较。

相关问题