RE: [xsl] XPATH restricting preceding nodes

Subject: RE: [xsl] XPATH restricting preceding nodes
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Wed, 10 Sep 2003 14:28:52 +0100
As David said, using the preceding axis is a very inefficient way of
doing this. Use Muenchian grouping, described at
www.jenitennison.com/xslt/grouping. 

Michael Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Kloeck, Erwin
> Sent: 10 September 2003 10:20
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: AW: [xsl] XPATH restricting preceding nodes 
> 
> 
> 
> Hi,
> 
> I made this XML document too simple in the last post. Entries 
> are not siblings! The XML document should rather something like this: 
> 
> <top>
> 	<page>
> 		<paragraph>
> 			<entry text='aaa'/>
> 		</paragraph>
> 		<paragraph>
> 			<entry text='bbb'/>
> 		</paragraph>
> 		<paragraph>
> 			<entry text='aaa'/>
> 		</paragraph>
> 	</page>
> 	<page>
> 		<paragraph>
> 			<entry text='ccc'/>
> 		</paragraph>
> 		<paragraph>
> 			<entry text='bbb'/>   ***
> 		</paragraph>
> 		<paragraph>
> 			<entry text='ccc'/>
> 		</paragraph>
> 	</page>
> </top>
> 
> I only want to select entries with the same text once for 
> each page. For the first page I want to get only one 
> aaa-entry and one bbb-entry. For the second page I want to 
> get only one ccc-entry and ond bbb-entry.
> 
> I did this with the following XPATH expression :
> 	<xsl:for-each 
> select="ancestor::page/descendant::entry[not(@text = 
> preceding::entry/@text)]">
> 
> but then I don't get the bbb-entry for the second page. 
> I cannot figure out a way to restrict the preceding::entry 
> result set to the current page. What am I doing wrong?
> 
> Thanks
> 
> ..............................
> 
> Erwin Kloeck
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread