xsl-list
[Top] [All Lists]

Re: Replacing character entities

2005-02-14 11:38:30
Tempore 19:07:22, die 02/14/2005 AD, hinc in xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit Wagstaff, Jason <WagstaffJ(_at_)msx(_dot_)umsl(_dot_)edu>:

I have a text block that contains &#13; &#13; wherever the user wanted
it to look like a paragraph break. I don't any have control over the
input.

Any ideas on how can I replace &#13; with <br/>? Or better still, use
the &#13 to identify the paragraphs and wrap each <p>paragraph</p>?
Hi,

Let's assume you have an XML with this node in it:

<text>Line1&#13;Line2&#13;other content</text>


And the desired output would be:
<div>
        <p>Line1</p>
        <p>Line2</p>
        <p>other content</p>
</div>


This can be achieved by applying a stylesheet like this:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0">
<xsl:output method="xml" indent="yes"/>

<xsl:template match="text">
<div>
        <xsl:call-template name="par"/>
</div>
</xsl:template>

<xsl:template name="par">
        <xsl:param name="text" select="."/>
        <p>
                <xsl:value-of 
select="substring-before(concat($text,'&#13;'),'&#13;')"/>
        </p>
        <xsl:if test="contains($text,'&#13;')">
                <xsl:call-template name="par">
                        <xsl:with-param name="text">
                                <xsl:value-of 
select="substring-after($text,'&#13;')"/>
                        </xsl:with-param>
                </xsl:call-template>
        </xsl:if>
</xsl:template>

</xsl:stylesheet>


regards,
--
Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041)
"Scio me nihil scire"  - Socrates

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--