xsl-list
[Top] [All Lists]

RE: Retaining XML output

2004-04-07 04:57:29
FAQ,

My XML looks like
<x>
     <y y1="somexml"><![CDATA[<queries><abc>123</abc></queries>]]></y>
</x>

and my xsl snippet is
    <xsl:value-of select="y[(_at_)y1='somexml']"/>

Now, when I run it through a transformation, I get an output 
without the
markup:
&lt;queries&gt;&lt;abc&gt;123&lt;/abc&gt;&lt;/queries&gt;

You didn't have markup in the first place, so you don't get markup in the 
output either. 
 
I would like to retain the markup in the output
(<queries><abc>123</abc></queries>).
Is there any way to achieve this using a xalan/xerces parser.

No, because "<queries>..." is not markup inside CDATA section, it's just text. 
If you want to output the text node in a CDATA section, use 
cdata-section-elements attribute in xsl:output with the value of the name of 
the element inside which the text appears, e.g. if the output element is "foo", 
the use

  <xsl:output cdata-section-elements="foo"/>

But again, note that 

  <foo><![CDATA[<queries><abc>123</abc></queries>]]></foo>

and 

  <foo>&lt;queries&gt;&lt;abc&gt;123&lt;/abc&gt;&lt;/queries&gt;</foo>

are equal.

Cheers,

Jarno


<Prev in Thread] Current Thread [Next in Thread>