This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Displaying document( ) output within CDATA
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] Displaying document( ) output within CDATA
- From: Adam Turoff <ziggy at panix dot com>
- Date: Thu, 28 Jun 2001 14:39:51 -0400
- References: <20010628040517.80153.qmail@web13802.mail.yahoo.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
On Wed, Jun 27, 2001 at 09:05:17PM -0700, Mark Miller wrote:
> Any suggestions on how to insert code from an external
> file into a CDATA section would be appreciated.
If you want to emit a <![CDATA[ ... ]]> section on output, you probably
want to look at <xsl:output cdata-section-elements=""/>. This will make
the child text content of an element appear within a CDATA section. You
can hack CDATA sections by hand to appear in the middle of a stream
of text nodes, but it involves hacking around the output escaping of < and >.
In your case, if you want to show examples as-is, as they are found
in an external XML file (or XML fragment), you probably want to use
<xsl:copy-of select=document()"/>
Here's a stylesheet fragment that may help you get going.
<xsl:output method="xml" cdata-section-elements="example"/>
<xsl:template match="example">
<example>
<xsl:copy-of select="document(@href)"/>
</example>
</xsl:template>
That will select the document specified by <example href=""/> in your
source, and display it as <example><![CDATA[ ... ]]></example> in your
output.
Hope this helps,
Z.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list