This version assumed I'd use two consecutive for-each clauses, one
for the B children and one for not-B-children.
So we'd be talking about a select="not(B)" here, wouldn't we?
When I try this though:
<xsl:foreach select="not(B)">
some diagnostic output here
<xsl:apply-templates />
</xsl:foreach>
Yes, you and David Carlisle are right.
not() is an expression and you must have a path
<xsl:foreach select="*[not(self::B)]">
Cheers,
Juergen
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list