Bonjour,
A partir du xml suivant :
j'applique le XSL suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <RECORD> <allname ref="pre_nom"> Albert </allname> <allname ref="pre_nom"> Alfred </allname> </RECORD>
pour obtenir comme résultat le XML suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:output encoding="UTF-8" indent="yes" method="xml"/> <xsl:template match="/"> <xsl:for-each select="//allname"> <xsl:element name="{@ref}"> <!--<xsl:element name="translate({@ref}, '[]_^+-*(){}.,;:/\', '')">--> <xsl:value-of select="."/> </xsl:element> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Dans ce xml final, j'aimerais que le tag <pre_nom> devienne <prenom> sans underscore et ce sans changer le xml de départ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <pre_nom> Albert </pre_nom> <pre_nom> Alfred </pre_nom>
Dans mon XSL, vous trouverez en commentaire la ligne : <xsl:element name="translate({@ref}, '[]_^+-*(){}.,;:/\', '')">
J'essaye donc de remplacer les caractères spéciaux dans le nom de l'attribut par un caractère vide mais j'ai l'erreur suivante : Expected QName
Qqun a-t-il une idée ?
Merci
Partager