xsl-list
[Top] [All Lists]

Troubleshooting a sort

2004-02-19 17:24:42
Andreas,

Thanks for your ideas! They didn't work, which probably means I wasn't clear 
enough. Let me try again :)

Here's a representative XML record:

<SAVEIdea>
      <SAVE_ID>25</SAVE_ID>
      <date_submitted>01/14/2004</date_submitted>
      <employee>Kathryn Grant</employee>
      <department>OPE</department>
      <idea>Buy faster printers.</idea>
      <status_history>
         <status timestamp="1/20/04, 4:33:13 PM" userID="GRANT01">Submitted for 
supervisor review</status>
         <status timestamp="1/25/04, 9:21:45 AM" userID="GRANT01">Submitted for 
CFO review</status>
         <status timestamp="1/29/04, 6:12:22 PM" 
userID="GRANT01">Approved</status>
      </status_history>
 </SAVEIdea>

Each SAVEIdea has one status_history element, and within the status_history may 
be one or more status elements. 

A JavaScript on my web page passes the to-be-sorted tagname as a parameter 
(e.g. var pass1 = 'date_submitted'), which my XSL file handles as follows:

<xsl:for-each select="//SAVEIdeas/SAVEIdea">
<xsl:sort select="*[name()=$param1]"/>

Then, an HTML table displays the sorted results:
<table>
 <td style="font-size:8pt" valign="top">
    <xsl:value-of select="date_submitted"/>
  </td>
etc.
</table>

Usually, I'm sorting on a child of the root element (SAVE_ID, date_submitted, 
etc.) These sorts are all working fine. But I also need to sort on the *last* 
status element. Status is not a child of the root, but a child of 
status_history. Is that the problem? Do I need to have something conditional 
for the sort statement? I welcome any additional suggestions!

Many thanks--

Kathryn


------------------------------

Date: Thu, 19 Feb 2004 20:32:54 +0100
From: "Andreas L. Delmelle" <a_l(_dot_)delmelle(_at_)pandora(_dot_)be>
Subject: RE: [xsl] FW: Troubleshooting a sort

-----Original Message-----
From: Grant, Kathryn

If anyone has any other ideas, I'd welcome them.


Hi,

Sorry, ignore my other post... or at least study it very carefully, and
you'll notice that I was too quick :) Can't sort status_history elements, as
there's only one per SAVEIdea, not?

Basic idea will work in your situation though...
Only should be more like

  <td ...>
    <xsl:apply-templates select="status_history" />
  </td>

<xsl:template match="status_history">
  <xsl:value-of select="status[last()]
</xsl:template>

if the status elements are always sorted ascending.


Cheers,

Andreas




**********************************************************
This message contains information that is confidential
and proprietary to FedEx Freight or its affiliates.
It is intended only for the recipient named and for
the express purpose(s) described therein.
Any other use is prohibited.
****************************************************************


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



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