2009-02-18 17 views
6

Hola tengo un nodo <msg> que contiene un mensaje tal comoxslt replace n con <br/> solo en un nodo?

cadena1
cadena 2
sting3

pero sin embargo cuando se hace, se hace una sola línea, ¿cómo puede reemplazo todo \ n con < br/> 's.

he intentado

< xsl: value-of select = 'replace (msg, "& #xA;", "< br/>")'/>

pero obtengo este error

Error al cargar la hoja de estilos: función XSLT/XPath no válida.

¿cómo hago esto?

Respuesta

19

llamada esta plantilla en la cadena que desea proceso:

<xsl:template name="break"> 
    <xsl:param name="text" select="string(.)"/> 
    <xsl:choose> 
    <xsl:when test="contains($text, '&#xa;')"> 
     <xsl:value-of select="substring-before($text, '&#xa;')"/> 
     <br/> 
     <xsl:call-template name="break"> 
     <xsl:with-param 
      name="text" 
      select="substring-after($text, '&#xa;')" 
     /> 
     </xsl:call-template> 
    </xsl:when> 
    <xsl:otherwise> 
     <xsl:value-of select="$text"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:template> 

gusta esta (que funcionará en el nodo actual):

<xsl:template match="msg"> 
    <xsl:call-template name="break" /> 
</xsl:template> 

o como este, pasando explícitamente un parámetro:

<xsl:template match="someElement"> 
    <xsl:call-template name="break"> 
    <xsl:with-param name="text" select="msg" /> 
    </xsl:call-template> 
</xsl:template> 

Creo que está trabajando con un procesador XSLT 1.0, mientras que replace() es una función que tiene sido introducido con XSLT/XPath 2.0.

+0

Estoy tratando de que, no funciona –

+0

Funciona para mí. ¿Puedes publicar el XML/XSL con el que lo pruebas? – Tomalak

+0

Tomalak, ¿puedes publicar un ejemplo xml para esto? –

0

También puede lograr esto mediante la etiqueta HTML simple,
Pruebe esta etiqueta antes de que su <pre> msg y cerrar después msg.

 
Jayakumar Kulkarni (Consultant) : 
Remark 

Jayakumar Kulkarni : 
Rematr 01 

Jayakumar Kulkarni : 
comment
0

<pre> 
 
Jayakumar Kulkarni (Consultant) : 
 
Rematr 01 
 

 
Jayakumar Kulkarni (Consultant) : 
 
3rd comment 
 
</pre>

Pruebe esta etiqueta por encima de

Cuestiones relacionadas