Re: [xsl] Issue with entities in XML document

Subject: Re: [xsl] Issue with entities in XML document
From: "Ramkumar Menon" <ramkumar.menon@xxxxxxxxx>
Date: Fri, 3 Aug 2007 17:18:42 -0700
I guess I have meserably failed to explain the problem clearly.

here is the actual snippet that illustrates the problem.

source of xformation
-----------------------

<input>
 ....
 <description>Hansel &amp; Gretel</description>
...
</input>


XSLT
-------

<xsl:template match="/">
 .....
.....
 <outputXMLString><xsl:value-of
select="xp:getxml-as-string(/input)"/></outputXMLString>


Output
-----------

<outputXMLString>&lt;input&gt;&lt;description&gt;Hansel &amp;amp;
Gretel&lt;/description&gt;&lt;/input&gt;

regards,
ram


On 8/3/07, David Carlisle <davidc@xxxxxxxxx> wrote:
>
> presumably your extension function is _serialising_ the xml content as
> a string containg XML markup, which you don't want. you just want it to
> return a string.
>
>
>
>
> <description>Hansel &amp; Gretel</description>
>
> so the content of that element is a string of length 15
> "Hansel & Gretel"
>
> If you need to write that string to an _XML_ document/file/stream then
> you need to write out the & as &amp;, and that's what presumably
> the strringwriter is doing.
>
> but you are not writing to a linearised XMl document you are calling an
> XPath extension function and writing the string straight back into an
> XPath value, so the value of the element you create is
> "Hansel &amp; Gretel"
> and when the element is serialised as the result of the XSLT
> transformation, you get
> "Hansel &amp;amp; Gretel"
>
> So I suspect that the problem is with your extension function returning
> XML markup rather than just a string (if it just returns a single
> element value) or an in-memory tree of some sort (if it is constructing
> an element tree).
>
> Of course details of how extension functions work and how java trees map
> to XPath trees depend on the processor you are using.
>
> David
>
>
>
>
>
> ________________________________________________________________________
> The Numerical Algorithms Group Ltd is a company registered in England
> and Wales with company number 1249803. The registered office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
>
> This e-mail has been scanned for all viruses by Star. The service is
> powered by MessageLabs.
> ________________________________________________________________________
>
>


-- 
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

-Ramkumar Menon
 A typical Macroprocessor

Current Thread