Re: [xsl] HTML character entity issue

Subject: Re: [xsl] HTML character entity issue
From: "Atul Shinh" <atul@xxxxxxxxx>
Date: Wed, 24 Dec 2008 11:52:59 +0530
Hi,

I tried using the method suggested by you but getting the same old error.

---------------------------

XSLCmd :WARNING: Error Level : 2
XSLCmd :WARNING: Error Code  : 11782 (2E06)
XSLCmd :WARNING: Unexpected element: 'br' after 'fo:#text' in 'fo:block'.
XSLCmd :WARNING: Line 219, Col 505, /tmp/xif02ee5_7e077883.xml

-------------------------

1  <xsl:template name="fix-br">
2   <xsl:param name="text" select="''"/>
In the 2nd line above I am using "/katalog/produkt/content-tag"
for select property instead of ''.

I am calling the template "one" (below, step 1  ) which again calls
"fix-br" . Hope that is no problem.

1   <xsl:call-template name="one" />

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


Regards
Atul

On Wed, Dec 24, 2008 at 3:39 AM, Michael M|ller-Hillebrand
<mmh@xxxxxxxxxxxxx> wrote:
> 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