Subject: Re: [xsl] Apply for-each-group to a node subset From: Tony Graham <Tony.Graham@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 21 Sep 2007 16:51:48 +0100 |
On Fri, Sep 21 2007 16:28:47 +0100, rocketraman@xxxxxxxxxxx wrote: > Tony Graham wrote: ... >> You may do better with: >> >> <xsl:apply-templates >> select="*[preceding-sibling::*[1][local-name() = 'g2']]"/> >> >> which selects child elements whose first preceding sibling element (of >> any type) is a 'g2'. > > That selects only the first preceding sibling, which results in only > g1 nodes. Sorry about that. I had already worked out that I'd solved the wrong problem. ... > It works, but I still don't understand why a simple nested predicate > does not work: > > <!-- process nodes after group --> > <xsl:apply-templates select="*[preceding-sibling::g2[last()]]"/> > > The way I read this is: apply templates to all the nodes that have the > LAST g2 as a preceding sibling, which should apply templates to all > nodes n3 to n4. It doesn't do as you expect because the current node list has changed for each predicate. This will work: <xsl:apply-templates select="g2[last()]/following-sibling::*"/> Regards, Tony Graham. ====================================================================== Tony.Graham@xxxxxxxxxxxxxxxxxxxxxx http://www.menteithconsulting.com Menteith Consulting Ltd Registered in Ireland - No. 428599 Registered Office: 13 Kelly's Bay Beach, Skerries, Co. Dublin, Ireland ---------------------------------------------------------------------- Menteith Consulting -- Understanding how markup works ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Apply for-each-group to a, Raman Gupta | Thread | Re: [xsl] Apply for-each-group to a, Tony Graham |
Re: [xsl] Apply for-each-group to a, Abel Braaksma | Date | Re: [xsl] Apply for-each-group to a, Tony Graham |
Month |