Subject: RE: XPath for matching multiple child elements
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 28 Sep 2006 17:49:39 +0100
|
> <xsl:template match="comments//(h1|p|b|i)">
>
> A syntax like that would be much more fun to maintain and
> adjust than writing out all of the combinations, like so:
>
> <xsl:template match="comments//h1 | comments//p | comments//b
> | comments//i">
>
> I'm using XSLT 2.0 and SaxonB 8.something. Is there some
> obvious solution that I have missed?
Unfortunately while the above is legal in XPath 2.0 in an expression, it's
still not allowed in a pattern - the syntax of patterns is much more
restrictive.
If you've got a schema then you might find that the elements you want to
match are all members of the same substitution group, in which case you can
write comments//schema-element(inline) where "inline" is the head of the
substitution group. Or the elements might all have the same type, in which
case you can write comments//element(*, inlineType).
Michael Kay
http://www.saxonica.com/
|