[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Need to render input document as string form of XML in output


Subject: Re: [xsl] Need to render input document as string form of XML in output
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Mon, 10 Sep 2012 23:22:24 +0100

If you're using Saxon, you could do

<xsl:value-of select="saxon:serialize(/*)"/>

Michael Kay
Saxonica

On 10/09/2012 22:33, Chris Wolf wrote:
Hello,

Before I start my question - I searched all over the Internet,
including the XLS-FAQ and the archives of this list and could find
nothing.

I have a transform with output method="text".   In addition to
rendering the results of the transform, I'd like to append a readable
string version of the input document XML to the end of the
transformation result.

I tried declaring a top-level variable like so

<xsl:variable name="inputDoc" select="/*"/>

Then at the end of my default template:

<xsl:value-of select="$inputDoc"/>

But this only renders the text of text nodes, not element and attribute names.

I then tried:

<xsl:value-of select="string($inputDoc)"/>

...but I guess that just make explicit what already occurs implicitly,
since I got the same results.

One of my web search hits, some guy was taking about a serializer
extension, or something like that - surely I don't
need to resort to that, do I?

Do I need to implement some kind of recursive template that explicity
calls name() on elements and attributes?

Since my output is type text, I'm guessing the solution would involve
@disable-output-escaping="true", unless I decide
I want output method="html".

Thanks,

Chris Wolf


Current Thread
Keywords
xml