Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert newline into <br/> with XSLT? [duplicate]

Tags:

Possible Duplicate:
Interpreting newlines with XSLT xsl:text?

How to convert newline into <br/> with XSLT?

I have this:

<text> some text with  new lines </text> 

I want to have this:

<p> some text with <br /> new lines </p> 
like image 661
liysd Avatar asked Jul 22 '10 14:07

liysd


1 Answers

This transformation:

<xsl:stylesheet version="1.0"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  <xsl:output omit-xml-declaration="yes" indent="yes"/>   <xsl:template match="t">   <p>     <xsl:apply-templates/>   </p>  </xsl:template>   <xsl:template match="text()" name="insertBreaks">    <xsl:param name="pText" select="."/>     <xsl:choose>      <xsl:when test="not(contains($pText, '&#xA;'))">        <xsl:copy-of select="$pText"/>      </xsl:when>      <xsl:otherwise>        <xsl:value-of select="substring-before($pText, '&#xA;')"/>        <br />        <xsl:call-template name="insertBreaks">          <xsl:with-param name="pText" select=            "substring-after($pText, '&#xA;')"/>        </xsl:call-template>      </xsl:otherwise>    </xsl:choose>  </xsl:template> </xsl:stylesheet> 

when applied on this XML document:

<t>Line1 Line2 Line3 </t> 

produces the wanted, correct result:

<p>Line1<br />Line2<br />Line3<br /></p> 
like image 75
Dimitre Novatchev Avatar answered Sep 30 '22 19:09

Dimitre Novatchev