Bonjour à tous,
Je souhaite remplacer la valeur d'un attribut par celle d'une autre balise pointée justement par la valeur courante de l'attribut :
Comme on peut e voir, je copie la balise courante, je copie les attributs qui ne sont pas "ref", je récrée l'attribut "ref" en tentant de changer sa valeur, puis je copie les noeuds fils.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <xsl:template match="node()"> <xsl:copy> <xsl:copy-of select="@*[local-name()!='ref']" /> <xsl:attribute name="ref"><xsl:value-of select="//po[@idm=@ref]/@id" /></xsl:attribute> <xsl:apply-templates select="node()" /> </xsl:copy> </xsl:template>
=> "ref" est sensé prendre la valeur de l'attribut "id" d'une balise "po" (supposée unique) dont l'attribut "idm" correspond à "ref".
Je pense que mon filtre est maladroit (surtout si "po" avait un attribut ref) ; mais je ne vois pas comment l'écrire autrement.
Merci de votre avis, comme d'hab'
Partager