bonjour,
j ecris un xsl permettant de recopier les élément étant dans un doc un pas dans un autre, on reconnait ces élément grave à leur attribut id et leur position relative au noeud root...
le problème est que pour les éléments nouveaux, c est simple je les compare avec ceux contenu dans un autre doc...
le probleme vient des élément à supprimer à savoir comparer ceux de l autre doc avec ceux du doc courant... voici le probleme
j ai l impression qu au moment ou j ecris
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <xsl:template name="aretirer"> <xsl:for-each select="document('REF.xml')//*[parent::root and *[1][not(@id=.//*[parent::root]/*[1]/@id) ]]"> <xsl:element name="aretirer"> <xsl:copy-of select="."/> </xsl:element> </xsl:for-each> </xsl:template>
.//*[parent::root]/*[1]/@id je perd le contexte du doc courant qui devient...l autre doc
j ai réglé le problème en écrivant ce qui suit
directement sous <xsl:stylesheet/>
puis
Code : Sélectionner tout - Visualiser dans une fenêtre à part <xsl:variable name="currentDoc" select="/"/>
alors voila ma question:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <xsl:template name="aretirer"> <xsl:for-each select="document('REF.xml')//*[parent::root and *[1][not(@id=$currentDoc//*[parent::root]/*[1]/@id) ]]"> <xsl:element name="aretirer"> <xsl:copy-of select="."/> </xsl:element> </xsl:for-each> </xsl:template>
comment refaire référence au doc courant sans passer par cette variable??
Merci
Partager