Subject: Re: 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 & Gretel</description>
...
</input>
XSLT
-------
<xsl:template match="/">
.....
.....
<outputXMLString><xsl:value-of
select="xp:getxml-as-string(/input)"/></outputXMLString>
Output
-----------
<outputXMLString><input><description>Hansel &amp;
Gretel</description></input>
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 & 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 &, 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 & Gretel"
> and when the element is serialised as the result of the XSLT
> transformation, you get
> "Hansel &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
|