-
[XSL] Apostrophes
Bonjour,
Je voudrais inserer un fichier xml dans une base de donnée ... or un texte de mon xml peut contenir des apostrophes.
Je cherche donc un moyen avec XSL, de remplacer une apostrophe par deux apostrophes (pour que ca passe dans la base de donnée).
j'ai tenté presque toutes les combinaisons possibles entre les " et les ', les ' ................ mes recherches dans google n'ont pas donné grand choses!!
Aidez moi ;'(
voilà omn code :
<xsl:template name="afficherApos2Esp">
<xsl:param name="libelle"/>
<xsl:if test='contains($libelle,$apos)'>
<!-- c'est cette ligne là qui pose problème : -->
'<xsl:value-of select="translate($libelle,$apos,$apos$apos)"/>'
</xsl:if>
</xsl:template>
-
Je répond moi meme car j'ai trouvé la solution ... et aussi pour ceux qui en auraient besoin un jour :
Il faut donc faire soit meme sa fonction recursive :
<xsl:variable name="apos" select='"'"'/>
<xsl:template name="afficherApos2AposD">
<xsl:param name="libelle"/>
<xsl:choose>
<xsl:when test="contains($libelle, $apos)">
<xsl:value-of select="substring-before($libelle, $apos)"/>
<xsl:text>''</xsl:text>
<xsl:call-template name="afficherApos2AposD">
<xsl:with-param name="libelle" select="substring-after($libelle, $apos)" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$libelle" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
voila ..... :wink:
-
merci d'avoir mis la solution à ton problème ca pourra peut-être servir à d'autres personnes
par contre il y a 2 petits détails à régler :
- édite tes 2 messages et rajoute les balises [code][/code] autour de ton code pour qu'il soit plus lisible
- clique sur "Résolu" (en bas de cette page à gauche)