I think I've solved my problem,
<xsl:apply-templates select="image[id =
$lastid]/following-sibling::image[count(. | key('idkey', id)[1])=1]"/>
Thanks for all the help.
Chris
-----Original Message-----
From: Chris Hicks [mailto:chrish2000(_at_)iprimus(_dot_)com(_dot_)au]
Sent: Thursday, 6 January 2005 8:50 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] XML/XSLT formatting problem
Thanks Michael,
This has further been complicated by the fact that I have
image ID's in the result set that are repeated..in what is
essentially a de-normalised structure
Eg.
<results lastid="9">
<image>
<id>37</id>
<imagetitle>Fred</imagetitle>
<imagelocation>fred.jpg</imagelocation>
<imagesubject>Fred</imagesubject>
</image>
<image>
<id>9</id>
<imagetitle>Wilma</imagetitle>
<imagelocation>wilma.jpg</imagelocation>
<imagesubject>Wives</imagesubject>
</image>
<image>
<id>9</id>
<imagetitle>Wilma</imagetitle>
<imagelocation>wilma.jpg</imagelocation>
<imagesubject>Women</imagesubject>
</image>
<image>
<id>9</id>
<imagetitle>Wilma</imagetitle>
<imagelocation>wilma.jpg</imagelocation>
<imagesubject>Fred</imagesubject>
</image>
<image>
<id>22</id>
<imagetitle>Barney</imagetitle>
<imagelocation>barney.jpg</imagelocation>
<imagesubject>Bam Bam</imagesubject>
</image>
<image>
<id>22</id>
<imagetitle>Barney</imagetitle>
<imagelocation>barney.jpg</imagelocation>
<imagesubject>Betty</imagesubject>
</image>
<image>
<id>24</id>
<imagetitle>Dino</imagetitle>
<imagelocation>dino.jpg</imagelocation>
<imagesubject>Dino</imagesubject>
</image>
<image>
<id>24</id>
<imagetitle>Dino</imagetitle>
<imagelocation>dino.jpg</imagelocation>
<imagesubject>Fred</imagesubject>
</image>
</results>
So what I have is a key on id at the top of my template:
<xsl:key name="idkey" match="image" use="id"/> ..
Then I want to output a line for each unique ID using:
<xsl:for-each select="photographs::[count(. | key('idkey',
id)[1])=1]"> ..
Is there any way in the above line I can apply the
restriction that the id must be in a sibling of the image
with the @lastid so I only output items with id's of 22 and 24?
Cheers,
Chris
-----Original Message-----
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com]
Sent: Thursday, 6 January 2005 8:29 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] XML/XSLT formatting problem
<xsl:template match="results">
<xsl:apply-templates
select="image[id=current()/@lastid]/following-sibling::*">
...
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Chris Hicks [mailto:chrish2000(_at_)iprimus(_dot_)com(_dot_)au]
Sent: 06 January 2005 07:09
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] XML/XSLT formatting problem
Hi,
I have a problem where I need to start printing values from
a nodeset
starting from a certain position in the set.
My xml looks similar to this:
<results lastid="9">
<image>
<id>37</id>
<imagetitle>Fred</imagetitle>
<imagelocation>fred.jpg</imagelocation>
</image>
<image>
<id>22</id>
<imagetitle>Barney</imagetitle>
<imagelocation>barney.jpg</imagelocation>
</image>
<image>
<id>9</id>
<imagetitle>Wilma</imagetitle>
<imagelocation>wilma.jpg</imagelocation>
</image>
<image>
<id>12</id>
<imagetitle>Dino</imagetitle>
<imagelocation>dino.jpg</imagelocation>
</image>
<image>
<id>1</id>
<imagetitle>Bam Bam</imagetitle>
<imagelocation>bambam.jpg</imagelocation>
</image>
</results>
I need to check the "lastid" attribute in the result node
when looping
through the nodeset in order to know when to start
printing results
(this represents the last id printed on the previous
page). In the
above example I want to start printing results starting
from id = 12.
Any tips on where to begin would be appreciated.
Cheers,
Chris
--~------------------------------------------------------------------
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--