[xsl] Re: Re: copy top-level comments

Subject: [xsl] Re: Re: copy top-level comments
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Tue, 19 Jun 2001 05:51:55 -0700 (PDT)
Hi Rob,

The behaviour of MSXML has nothing to do with interpreting the space between the
comments -- even when this space forms "whitespace-only" nodes as per spec, in MSXML
such nodes are discarded by default on reading the input.

So, when I removed the 'indent="yes" ' from the xsl:output, I got the following

<!--comment1 --><!--comment2 --><!-- comment1 ok --><!-- comment2 ok -->

So, this proves that it is the way hoe MSXML interprets 'indent="yes" '.

In Mike Kay's book (page 256) it is said that this behaviour is not well-defined and
therefore may be vendour-specific.

Dimitre Novatchev.

Rob Lugt wrote:

Dimitre Novatchev wrote:
> > I want to copy comments from the input to the output.
> > I try to get each command in a new Line as it is in the input document.
> > <xsl:output method="xml" inden="yes"> works for the most comments, but
not for the
> > top.Level comments.
> Using MSXML I cannot reproduce the problem:
> source xml:
> -----------
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <!--comment1 -->
> <!--comment2 -->
> <doc>
> <!-- comment1 ok -->
> <!-- comment2 ok -->
> </doc>

I'm afraid this looks like a non-conformance issue with MSXML.  The space
between the comments in the root node is not XML character data, and
therefore I don't think it should be presented to the XSLT processor as

However, it is possible to achieve what Bernward wanted with a modified

<xsl:stylesheet version="1.0"
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/comment()">
        <xsl:text>&#10;</xsl:text> <!-- force a linefeed before each
top-level comment -->

    <xsl:template match="comment()">



Do You Yahoo!?
Spot the hottest trends in music, movies, and more.

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Current Thread