Subject: Re: 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
> "<br/>" with "<br/>", but nevertheless it is possible with XSL.
>
> "<br/>" 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="'<br/>'"/>
> <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 <br/> 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 <br/> 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
|