确定节点是否包含在XSLT中的另一个节点中

时间:2010-07-30 16:01:33

标签: xslt containment

是否可以判断节点是否包含在XSLT中的另一个节点内(或等于该节点)?例如,请考虑以下代码段:

<xsl:variable name="itemSection" select=".."/>
<xsl:for-each select="key('enemyItems', @key)">
    <xsl:variable name="enemyList" select="./attributes/@value"/>
    <xsl:variable name="enemyListSection" select="../../.."/>
                      .
                      .
                      .
</xsl:for-each>

是否可以判断itemSection是否包含在(或等于)enemyListSection中?

2 个答案:

答案 0 :(得分:2)

在XPath 1.0中

$itemSection[ancestor::*[generate-id()=generate-id($enemyListSection)]]

在XPath 2.0中

$itemSection[ancestor::*[. is $enemyListSection]]

答案 1 :(得分:1)

对亚历杭德罗的答案进行小幅调整

在XPath 1.0中

$itemSection[ancestor-or-self::*[generate-id()=generate-id($enemyListSection)]] 

在XPath 2.0中

$itemSection[ancestor-or-self::*[. is $enemyListSection]]

因为问的原始问题:

  

是否可以判断是否   itemSection包含在(或   等于)enemyListSection?