[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] XML/XSLT formatting problem
Subject: RE: [xsl] XML/XSLT formatting problem From: "Chris Hicks" <chrish2000@xxxxxxxxxxxxxx> Date: Thu, 6 Jan 2005 21:46:28 +1100 |
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@xxxxxxxxxxxxxx] > Sent: Thursday, 6 January 2005 8:50 PM > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > 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@xxxxxxxxxxxx] > > Sent: Thursday, 6 January 2005 8:29 PM > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > 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@xxxxxxxxxxxxxx] > > > Sent: 06 January 2005 07:09 > > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > > 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] XML/XSLT formatting probl, Chris Hicks | Thread | [xsl] xsl-fo repeat page-sequence, Hong Le |
Re: [xsl] use XSLT or XQuery in Sax, Niclas Hedhman | Date | RE: [xsl] use XSLT or XQuery in Sax, Michael Kay |
Month |
Keywords