RE: [xsl] xpath syntax error

Subject: RE: [xsl] xpath syntax error
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Wed, 17 Dec 2008 14:45:01 -0000
> I was trying to find empty p or q elements in my xml (saxon 9B) with
>    <xsl:template match='(p|q)[count(node()) = 0]'/>
> This gives me a syntax error. 

The syntax of XSLT patterns is a (small) subset of the syntax for XPath
expressions. Parentheses are not allowed, and "|" is allowed only as the
top-level operator. So it has to be

match="p[count(node()) = 0] | q[count(node()) = 0]"

or some other construct as you suggest. Though you could write this more
tersely as

match="p[not(node())] | q[not(node())]"

Michael Kay

Current Thread