I think it's
match="entry[. is
ancestor::table[1]/descendant::entry[1]]/*[self::title|self::para][1]"
Note the use of "is" rather than "=".
When matching complex patterns like this, it's sometimes best to preselect
all the matching elements into a global variable:
<xsl:variable name="initial-paras"
select="//table/descendant::entry[1]/*[self::title|self::para][1]"/>
<xsl:template match="*[. intersect $initial-paras]">
See also http://www.w3.org/Bugs/Public/show_bug.cgi?id=5464
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Christian Roth [mailto:roth(_at_)visualclick(_dot_)de]
Sent: 24 March 2009 01:10
To: XSL List
Subject: [xsl] Pattern question: first child of first descendant
Hello,
I am looking for a pattern that does "match the first title
or para child of the first entry descendant of a table
element". I'm using XSLT2.
The pattern I have come up with so far is
match="*[self::para or self::title][parent::entry =
(ancestor::table[1]// entry)[1]][1]"
It seems to work, but looks a little cumbersome to me. Is
there a better way to express that match?
- Christian
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--