comment ajouter un attribut xsl
J'ai un xml avec la balise img
<img>
source
</img>
Je veux générer:
<img src="source.jpg">
J'ai essayé quelque chose comme ça:
<img>
<xsl:attribute name="src">
<xsl:text>
<xsl:value-of select="node()" />.jpg
</xsl:text>
</xsl:attribute>
</img>
mais il doesng travail
- Bonne question (+1). Voir ma réponse pour une courte et simple de la solution.
Vous devez vous connecter pour publier un commentaire.
La raison pourquoi ce que vous faites ne fonctionne pas, c'est que vous ne pouvez pas évaluer XSLT expressions à l'intérieur de la
<xsl:text>
élément.<xsl:text>
ne peut contenir que du texte littéral, des références d'entité, et #PCDATA.Si vous déplacez le
<xsl:value-of>
à l'extérieur de la<xsl:text>
, puis le suivant fonctionne:Toutefois, la sélection
<xsl:value-of select="node()>
pour la<img>
dans votre exemple inclure les retours chariot et les espaces à l'intérieur de la<img>
élément, qui n'est probablement pas ce que vous voulez dans votresrc
valeur de l'attribut.C'est pourquoi Dimitre Novatchev utilisé
normalize-space()
dans sa réponse. En l'appliquant à l'exemple ci-dessus:Si vous vous débarrasser de la
<xsl:text>
comme Fabiano la solution suggère, alors vous pouvez aussi le faire:Utilisation:
Ce qui suppose le
<img>
élément est le nœud courant.Il suffit de retirer la balise xsl:text, dans ce cas, vous n'en aurez pas besoin. Essayez ceci:
Je n'ai pas testé, mais ça devrait fonctionner. =)
<img src="
 source
.jpg"/>
, qui n'est probablement pas ce que @liysd veut. À l'aide de normalize-space() comme @Dimitre Novatchev suggère de faire vos réponse valide.