Subject: Re: Exclude by Sibling Condition
From: Michael B Allen <mba2000@xxxxxxxxxx>
Date: Fri, 2 Dec 2005 13:43:23 -0500
|
On Fri, 2 Dec 2005 08:45:47 -0600
JBryant@xxxxxxxxx wrote:
> <xsl:for-each select="page[not(@tab=following::page/@tab)]">
> <!-- Process the nodes you selected here -->
> </xsl:for-each>
>
> From a human readability point of view, that's three lines shorter and
> keeps the selection syntax in the for-each, so that the interior of the
> for-each is purely how to process a node that matched the selection
> criteria. So, to me, that's cleaner and easier to follow.
Indeed. Actually I didn't consider your method because it selects:
<page name="p2" tab="products"/>
<page name="d" tab="downloads"/>
<page name="s" tab="support"/>
Rather than:
<page name="p0" tab="products"/>
<page name="d" tab="downloads"/>
<page name="s" tab="support"/>
But looking closer I can see that simply replacing 'following' with
'preceding' appears to generate the above correctly.
Thanks,
Mike
|