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 |