[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: HTML character entity issue

Subject: Re: HTML character entity issue
From: Michael Müller-Hillebrand <mmh@xxxxxxxxxxxxx>
Date: Tue, 23 Dec 2008 23:09:36 +0100
Re:  HTML character entity issue
Atul,

I haven't read the original post, but I guess it would be sufficient
to "repair" the XML during processing. Of course it is always better
to get correct XML in the first place. Also sometimes it is simpler to
preprocess such documents with a different tools to search and replace
all "&lt;br/&gt;" with "<br/>", but nevertheless it is possible with
XSL.

"&lt;br/&gt;" is nothing special for XSL, just simple text. So any
"repair" must go into a template that processes text:

<xsl:template match="text()" priority="2">
  <xsl:call-template name="fix-br">
    <xsl:with-param name="text" select="."/>
  </xsl:call-template>
</xsl:template>

<xsl:template name="fix-br">
  <xsl:param name="text" select="''"/>
  <xsl:variable name="bad-br" select="'&lt;br/&gt;'"/>
  <xsl:choose>
    <xsl:when test="contains($text, $bad-br)">
      <xsl:value-of select="substring-before($text, $bad-br)"/>
      <br/>
      <xsl:call-template name="fix-br">
        <xsl:with-param name="text" select="substring-after($text,
$bad-br)"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$text"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

This is recursive in case there is more than one "bad-br" in your
content. With XSLT 2.0 it could be written with a function and/or
regular expressions.

HTH,

- Michael (who sometimes has to fix bad content as well)

Am 23.12.2008 um 20:25 schrieb Atul Shinh:

Hey thanks Michael and Vasu for replying back. My response got slow
on this.
Nothing out of this seems to be working.

I have tried the CDATA and disable-output-escaping="yes". I think I am
using it in wrong way. Can you elaborate how to use it? I give you
description of my files.


---------------------------part of index.xml--------------------------

<katalog>
<produkt>
<!-- what a story -->
<gruppe>Universal-T|rddmpfer VS 2000</gruppe>
<titel>Das krdftige Topmodell mit verkleidetem Haken</titel>
<content>My sampla text &lt;br/&gt;  DICTATOR-T|rddmpfer bremsen
zufallende T|ren progressiv, d.h. besonders sanft ab, ziehen sie leise
ins T|rschlo_ und halten sie sicher geschlossen.

              </content>
</produkt>
</katalog>


-------------------- part of index.xsl --------------------------


.............
.........
<fo:table-row>
 <fo:table-cell >
<fo:block>
 <xsl:value-of select="content" disable-output-escaping="yes" />

</fo:block>
</fo:table-cell>
.............
.........
<xsl:template match="br" >

     <xsl:text><![CDATA[<br />]]></xsl:text>
 </xsl:template>
---------------------------------------------------------------------

So I have given a view of my files.
so the "br" tag is actually &lt;br/&gt; in xml  and it is appearing as
<br / > in output
Michael i tried by your way also
Is there any namespace that is neccessary for all this to work ?


Thanks and regards Atul

-- _______________________________________________________________ Michael M|ller-Hillebrand: Dokumentations-Technologie Adobe Certified Expert, FrameMaker Lvsungen und Training, FrameScript, XML/XSL, Unicode Blog: http://cap-studio.de/ - Tel. +49 (9131) 28747

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.