[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Pattern question: first child of first descendant
Subject: RE: [xsl] Pattern question: first child of first descendant From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 24 Mar 2009 08:32:01 -0000 |
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@xxxxxxxxxxxxxx] > 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Pattern question: first c, David Carlisle | Thread | Re: [xsl] Pattern question: first c, David Carlisle |
Re: [xsl] [XML namespaces], Jeff Sese | Date | Re: [xsl] Pattern question: first c, David Carlisle |
Month |
Keywords