xsl-list
[Top] [All Lists]

Re: [xsl] commenting an XML element [XSLT 1.0][xsltproc]

2010-08-18 06:36:38
David Carlisle wrote:
On 18/08/2010 12:09, Martin Honnen wrote:
I don't see any problem with that code

The code is trying to copy elements into a comment, but comments can not conatin element nodes, they only have a text value, not children (the same as attributes).

You need to serialise the element to a string (either using a template usineg &lt;<xsl:value-of select="name()"/>.... or an extension such as saxon:serialize().

Are we talking about the same code? It does try to serialize with a mode="comment":

<xsl:template match="spec">
        <xsl:comment>
           <xsl:apply-templates select="self::*" mode="comment"/>
     </xsl:comment>
</xsl:template>

   <xsl:template match="*" mode="comment">
        <xsl:value-of select="'&lt;'"/>
            <xsl:value-of select="name()"/>
        <xsl:value-of select="'&gt;'"/>
            <xsl:apply-templates select="@*|node()" mode="comment" />
        <xsl:value-of select="'&lt;/'"/>
            <xsl:value-of select="name()"/>
        <xsl:value-of select="'&gt;'"/>
    </xsl:template>

    <xsl:template match="text()" mode="comment">
        <xsl:value-of select="."/>
    </xsl:template>

    <xsl:template match="@*" mode="comment">
        <xsl:value-of select="name()"/>
        <xsl:text>="</xsl:text>
        <xsl:value-of select="."/>
        <xsl:text>" </xsl:text>
    </xsl:template>

So where does that code try to put an element into a comment?

--

        Martin Honnen
        http://msmvps.com/blogs/martin_honnen/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--