|
Subject: Re: [xsl] How do you change markup to text in XSLT? From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Fri, 7 Sep 2001 09:56:20 +0100 |
Hi Andrew,
> The only generic way I can see right now is to reconstruct the XML
> using templates, something like:
>
> <xsl:template match="*" mode="out">
> <<xsl:value-of select="name()"/>>
> <xsl:apply-templates mode="out"/>
> </<xsl:value-of select="name()"/>>
> </xsl:template>
>
> With added functionality for outputting what you want (attributes,
> comment nodes, command nodes, etc).
>
> This is a horrible way to do it, is there another better/easier way?
If you're generating XML and you want the serialised version to be
placed in element content, then there's a nasty hack - you can use
disable-output-escaping to add a CDATA section around the XML that you
generate:
<xsl:template match="*" mode="out">
<xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text>
<xsl:copy-of select="." />
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</xsl:template>
The usual warnings apply - not all processors support
disable-output-escaping and you have to watch out for the sequence ]]>
in the XML that you're copying.
If you're using MSXML, another option is to create your own
serialising extension function, something like:
<msxsl:script implements-prefix="my" language="javascript">
<![CDATA[
function serialize(nodes) {
var XMLstring;
for (var i = 0; i < nodes.length; i++) {
XMLstring += nodes.item(i).xml;
}
return XMLstring;
}
]]>
</msxsl:script>
You can then create an XML serialisation of a node with:
<xsl:template match="*" mode="out">
<xsl:value-of select="my:serialize(.)" />
</xsl:template>
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] How do you change markup , David Carlisle | Thread | Re: [xsl] How do you change markup , Mike Moran |
| RE: [xsl] Storing HTML in XML, Michael Kay | Date | [xsl] match selection formulae, roger . day |
| Month |