RE: [xsl] position()!=last() works in one env, not in another

Subject: RE: [xsl] position()!=last() works in one env, not in another
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 7 Feb 2007 09:06:37 -0000
> I am testing in Altova XMLSpy and running in PHP5.  In XMLSpy the
> position()!=last() works fine, but in PHP5, it is always 
> true.  Here is the code:
> 
>   <xsl:template match="p:category|p:subCategory|p:imageDir" 

The value of position() and last() within the template depends on the
position of the node being processed within the set of nodes selected by the
apply-templates call, which you haven't shown us.

The most likely explanation is that the apply-templates call is selecting
whitespace text nodes as well as element nodes. Altova follows Microsoft in
silently removing these before the transformation starts, unless you go to
special lengths to prevent this.

Michael Kay
http://www.saxonica.com/

Current Thread