xsl-list
[Top] [All Lists]

RE: [xsl] XPath for matching multiple child elements

2006-09-28 09:49:55
<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/


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--