Определение, содержится ли узел в другом узле в XSLT - PullRequest
0 голосов
/ 30 июля 2010

Можно ли сказать, содержится ли узел внутри (или равен) другому узлу в 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 в (или равен) врагу-списку?

Ответы [ 2 ]

2 голосов
/ 30 июля 2010

В XPath 1.0

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

В XPath 2.0

$itemSection[ancestor::*[. is $enemyListSection]]
1 голос
/ 30 июля 2010

Небольшая поправка к ответу Алехандро :

В XPath 1.0

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

В XPath 2.0

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

Поскольку первоначальный вопрос задавался:

Можно ли определить, содержится ли itemSection в пределах ( или ) врага списка_секций?

...