First, I had ISO-8859-1 encoding. As it doesn't work, I changed it to UTF-8.
Using the generic XSL transformation, it doesn't work.
Here is what I have to do (and it works) :
<xsl:template name="parseUTF8">
<xsl:param name="string"/>
<xsl:choose>
<xsl:when test="contains($string, '#194;#160;')">
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#194;#160;')"/></xsl:call-template>#160;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#194;#160;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#160;')">
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#160;')"/></xsl:call-template>#224;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#160;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#167;')">
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#167;')"/></xsl:call-template>#231;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#167;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#168;')">
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#168;')"/></xsl:call-template>#232;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#168;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#169;')">
<xsl:variable name="line" select="substring-before($string, '#195;#169;')"/>
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#169;')"/></xsl:call-template>#233;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#169;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#170;')">
<xsl:variable name="line" select="substring-before($string, '#195;#170;')"/>
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#170;')"/></xsl:call-template>#234;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#170;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#175;')">
<xsl:variable name="line" select="substring-before($string, '#195;#175;')"/>
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#175;')"/></xsl:call-template>#239;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#175;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#180;')">
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#180;')"/></xsl:call-template>#244;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#180;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#185;')">
<xsl:variable name="line" select="substring-before($string, '#195;#185;')"/>
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#185;')"/></xsl:call-template>#249;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#185;')"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="contains($string, '#195;#187;')">
<xsl:variable name="line" select="substring-before($string, '#195;#187;')"/>
<xsl:call-template name="parseUTF8"><xsl:with-param name="string" select="substring-before($string, '#195;#187;')"/></xsl:call-template>#251;<xsl:call-template name="parseUTF8">
<xsl:with-param name="string" select="substring-after($string, '#195;#187;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$string"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
What a wonderfull world !!!!! :-|
Franck
PS: j'habite dans la région parisienne, dans le 78