xsl-list
[Top] [All Lists]

RE: XML/XSLT formatting problem

2005-01-06 02:49:51
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>