|
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 |