|
Subject: RE: [xsl] Result tree fragment to string? result as CDATA From: "Rushforth, Peter" <prushfor@xxxxxxxxxxx> Date: Thu, 28 Aug 2008 11:27:35 -0400 |
Hi,
I think I have a similar problem, but not constrained by the XSLT
version
or environment as for James.
Specifically, I'm trying to generate an output document with a
description
element that looks like this
... other markup in result document...
<description><![CDATA[
<html>
<head>
<title>this is a test</title>
</head>
<body>
<b>this is a test</b>
</body>
</html>]]>
</description>
... more result document here ...
The solutions I've seen thus far all seem to end up with the markup
escaped.
I specifically don't want the markup to be escaped, but I do want
the <description> element to have an xs:string value. Is there any way
to
achieve this?
Cheers,
Peter
> > > Do I have any options left for converting the result tree
> fragment
> > > to
> > a
> > > string?
> >
> > no
>
> Hmm... could he do something like:
>
> <xsl:variable name="xml">
> <xsl:call-template name="serialize-tree">
> <xsl:with-param name="nodes" select="$result-tree" />
> </xsl:call-template>
> </xsl:variable>
>
> <xsl:template name="serialize-tree">
> <xsl:param name="nodes" />
> <xsl:apply-templates select="$nodes" mode="serialize" />
> </xsl:template>
>
> <xsl:template name="quote-attribute">
> <xsl:param name="value" />
> <!-- quote attribute's value -->
> </xsl:template>
>
> <xsl:template match="node()" mode="serialize" />
>
> <xsl:template match="@*" mode="serialize">
> <xsl:variable name="dq">
> <xsl:text>"</xsl:text>
> </xsl:variable>
> <xsl:variable name="value">
> <xsl:call-template name="quote-attribute">
> <xsl:with-param name="value" select="." />
> </xsl:call-template>
> </xsl:variable>
> <xsl:value-of
> select="concat(' ',local-name(),'=',$dq,$value,$dq)" />
> </xsl:template>
>
> <xsl:template match="*" mode="serialize">
> <xsl:value-of select="concat('<',local-name())" />
> <xsl:apply-templates select="@*" mode="serialize" />
> <xsl:value-of select="string('>')" />
> <xsl:apply-templates select="*" mode="serialize" />
> <xsl:value-of select="concat('</',local-name(),'>')"
/> </xsl:template>
>
> The above doesn't handle namespaces, processing-instructions,
> comments, or mixed content, but it could be hacked to do so.
> Is there a reason why this approach would not work in XSL 1.0
> to satisfy his needs?
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Result tree fragment to s, David Carlisle | Thread | Re: [xsl] Result tree fragment to s, Andrew Welch |
| RE: [xsl] use-when in the xsl:inlcu, Michael Kay | Date | Re: [xsl] Result tree fragment to s, Andrew Welch |
| Month |