2010-07-30 5 views
0

Est-il possible de dire si un nœud est contenu dans (ou égal à) un autre nœud dans XSLT? Par exemple, considérez cet extrait de code:Déterminer si un nœud est contenu dans un autre nœud dans 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> 

Est-il possible de dire si itemSection est contenue dans (ou égale à) enemyListSection?

+0

vérifier Dimitre réponse correcte. J'ai raté la partie "(ou égal à)". –

Répondre

2

Dans XPath 1,0

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

Dans XPath 2,0

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

Voir ma contribution mineure à l'exactitude de votre réponse. :) –

1

Juste un petit ajustement à la réponse de Alejandro:

Dans XPath 1.0

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

Dans XPath 2,0

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

Parce que la question initiale posée:

Est-il possible de dire si itemSection est contenue dans (ou égal à) enemyListSection?

+0

J'ai raté l'important "(ou égal à)". Le vôtre est la bonne réponse. –

Questions connexes