Translate n'est pas fait pour ça, il te faut un stylesheet recursif.  
 
L'exemple ci-joint remplace des CR par des <br /> dans le contenu d'un element code d'un xml donné:
 
<?xml version="1.0" encoding="ISO-8859-1"?>
   <!-- gReplaces text in xml code with markup -->
   <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
   <!-- general settings -->
   <xsl:output method="xml" omit-xml-declaration="no" encoding="ISO-8859-1"/>
   <!-- global variables -->
   <xsl:variable name="gReplace"><!-- replace target here is CR -->
     <xsl:text>
 </xsl:text></xsl:variable>
   <!-- transformations -->
     <xsl:template match="*">
     <xsl:copy>
       <xsl:copy-of select="@*"/>
       <xsl:apply-templates/>
     </xsl:copy>
   </xsl:template>
       <xsl:template match="//code/text()"><!-- replace only in code elements -->
     <xsl:call-template name="doReplace">
       <xsl:with-param name="text" select="."/>
     </xsl:call-template>
     </xsl:template>
       <xsl:template name="doReplace">
     <xsl:param name="text"/>
       <xsl:choose>
       <xsl:when test="contains( $text, $gReplace)">
         <xsl:value-of select="substring-before( $text, $gReplace)"/>
         <!-- substitue gReplace occurence with <BR /> string -->
         <xsl:element name="br"/>
         <xsl:call-template name="doReplace"><!-- recurse -->
           <xsl:with-param name="text" select="substring-after( $text, $gReplace)"/>
         </xsl:call-template>
       </xsl:when>
       <xsl:otherwise>
         <xsl:value-of select="$text"/>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:template>
   </xsl:stylesheet>
 <!-- eof -->
   | 
 
T'as de la chance que c'est bientôt la St-Nicolas...
 
Message édité par avander le 01-12-2006 à 15:46:28