RE: XPath for matching multiple child elements
> But it's free enough to support a bit of a workaround, even > if you have no schema: > > <xsl:variable name="comment-elements" > select="//comments//(h1|p|b|i)"/> > > <xsl:template match="*[exists(. intersect $comment-elements)]"> > ... > </xsl:template> > > I think this should work. Yes, but it might have fairly horrible performance. I don't know how other processors work, but with Saxon, patterns are a lot more efficient if they identify the element names that match, because Saxon basically does a hash lookup on the node kind and then on the node name. Any match="*" pattern gets tested against every node; and in this case that will involve a serial search through the list of h1|p|b|i elements, which is distinctly O(n^2). Not worth the savings in keystrokes. Michael Kay http://www.saxonica.com/
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format