Bonjour tout le monde,

Afin d'ajouter à un fichier XML des balises de référencement en vue de traductions vers d'autres langues, j'essaie d'insérer de nouvelles balises au sein de balises préexistantes à l'aide d'un traitement par feuille de style.
<label>O2 Consump</label>


Je cherche à insérer dans chaque noeud un sous-noeud <toto> :
<label><toto>O2 Consump</toto></label>


J'ai donc tenté d'appliquer le xslt suivant :
<xsl:template match="@*|node()">
		<xsl:copy>
			<xsl:apply-templates select="@*|node()"/>
		</xsl:copy>
	</xsl:template>

	<xsl:template match="*">
			<toto>
				<xsl:apply-templates />
			</toto>	
	</xsl:template>	


Or le traitement par ce code vient remplacer les balises préexistantes, ce qui n'est pas l'effet recherché... Où pourrais-je m'être trompé ?
Modifié par PrOtOzOaire (04 Sep 2012 - 10:35)
C'est bon, j'ai trouvé, merci de bien vouloir supprimer ce sujet.
Modifié par PrOtOzOaire (04 Sep 2012 - 10:36)
Bonjour,
PrOtOzOaire a écrit :
C'est bon, j'ai trouvé, merci de bien vouloir supprimer ce sujet.

Ne souhaites-tu pas partager la solution ?
Voici la solution que j'ai appliquée :

<xsl:template match="noeud1|noeud2|noeud3">
			<xsl:element name="{name()}">
				<xsl:for-each select="@*">
					<xsl:attribute name="{name()}">
						<xsl:value-of select="current()"/>
					</xsl:attribute>
				</xsl:for-each>
				
				<toto>
					<xsl:value-of select="node()"/>
				</toto>
				
			</xsl:element>	
	</xsl:template>	


Seul le contenu du nœud d'origine est inclus dans <toto>, mais c'est ce que je recherchais en l’occurrence.