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(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of
Kloeck, Erwin
Sent: 10 September 2003 10:20
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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