[xsl] Different results with different processors

Subject: [xsl] Different results with different processors
From: "Chris Gamache" <cgamache@xxxxxxxxx>
Date: Thu, 7 Jun 2007 17:57:27 -0400
I'm comparing the processing the same stylesheet using Xalan and
libxslt (xsltproc)

Xalan produces expected output. xsltproc has some issues. Xalan
interprets this expression correctly (at least /I/ think it does... :)
libxslt does not...

<xsl:apply-templates select="node()[name() != 'bar']" />

I find it hard to articulate what I am seeing. I'll do my best... What
is getting subsequently selected by libxslt isn't the same thing as
what xalan selects. If I rewrite the expression to pick a specific set
of nodes
<xsl:apply-templates select="foo" /> I get the expected result. If I
re-write it to use a for-each ...

<xsl:for-each select="node()[name() != 'bar']">
 <xsl:apply-templates select="." />

It behaves as expected.

I don't understand the difference between xalan and libxslt's
interpretation of the statement, and why re-writing it makes all the
difference. Am I doing something wrong? Am I hitting on a
incompatibility I am unaware of?

Current Thread