Subject:xsl transformation Author:chris au Date:27 Dec 2007 12:18 AM
Hi,
i have the following problem. One of the systems I use automatically generate xml data of which some of this data is embedded html and example would be
<?xml version="1.0"?>
<TEST1>
<Comment>
<p><b>I would like to know what is going on</b></p>
<p><i>this is a test system</i></p>
</Comment>
</TEST1>
Subject:xsl transformation Author:(Deleted User) Date:27 Dec 2007 05:29 AM
Hi Chris,
I don't see why your XSL engine should process the xsl:value-of on the "Comment" node by serializing also the element tags; which processor are you using? Are you sure the source XML has the text you wrote, or is it using a CDATA section and/or entity references?
Subject:xsl transformation Author:chris au Date:27 Dec 2007 04:37 PM
hi Alberto,
thanks for the quicky response, what do you mean by processor? I am 100% sure the xml file being generated is of the same format as the one I have displayed and no CDATA tags are being used. At the moment I am using a proprietary product which generates the XML and all I tell this product where my XSL file is located if I want to change the output to html.
Subject:xsl transformation Author:(Deleted User) Date:28 Dec 2007 06:36 AM
Hi Chris,
an "XSLT processor" is a software that reads the instructions written in the XSLT stylesheet and executes them on the input XML document. As you say you have a proprietary software that accepts an XSLT stylesheet as parameter, I would look at the documentation of that tool to know which XSLT processor it is using under the cover (maybe it's a 3rd-party engine, maybe they wrote one by themself).
From what I can see from the snippet you published, when that processor finds xsl:value-of working on an element node, it returns the serialized XML instead of the concatenation of its child text nodes. You could try work around this non-conformance by using <xsl:value-of select="string(.)"/>