Subject: RE: [difference between processors]
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Sun, 7 Jul 2002 07:02:16 +0100
|
> There is undoubtedly a simple explanation for this problem
> that I am overlooking.
>
> This is the relevant fragment of a longer template.
>
> <xsl:template match="chapter">
> <xsl:if test="position()!=last()">
> <hr></hr>
> </xsl:if>
> </xsl:template>
>
> In a book of three chapters, Saxon and XT return three hard
> rules, MSXML returns two (the fuller template shows these to
> be after the first and second chapters and not the third and
> final one)
>
The explanation is that MSXML silently strips whitespace text nodes by
default. The other processors follow the spec by requiring you to do
this manually, using <xsl:strip-space elements="*"/>. This means that
when you do <xsl:apply-templates/>, the last node selected is not a
chapter, but a whitespace text node, so it is not processed by this
template rule.
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|