[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] sort elements in external document


Subject: Re: [xsl] sort elements in external document
From: "Anthony B. Coates (XSL-List)" <abcoatesecure-xsllist@xxxxxxxxxxx>
Date: Tue, 15 May 2007 16:02:40 +0100

As an alternative view, you often get simpler and more maintainable
stylesheets by doing the processing in stages using multiple stylesheets.
In particular, I often find it useful to have a phase that augments the
original document with extra information, and then a processing phase.

To apply that principle here, you would have one stylesheet that augments
the original file with dates to produce

<list>
     <file date="...">file1.xml</file>
     <file date="...">file2.xml</file>
...
     <file date="...">file100.xml</file>
<list>

and then you would use a second stylesheet to do the sorting (and strip
out the extra "date" attributes as preferred).  Now, for this particular
example, the "all in one stylesheet" approach isn't too bad, but I would
often use two stylesheets anyway, just for ease of debugging and
maintenance.

Cheers, Tony.

On Tue, 15 May 2007 13:41:55 +0100, Vaduvoiu Tiberiu
<vaduvoiutibi@xxxxxxxxx> wrote:

I want to sort an xml document by data from an external document. Let me
see if I can explain this: I have list.xml:

<list>
    <file>file1.xml</file>
    <file>file2.xml</file>
...
    <file>file100.xml</file>
<list>

each of the fileX.xml have inside a date tag:
<date>20071015102000</date>(yyyymmddhhmmss). I want to sort the list.xml
by the date in each file. The way I did it:
<xsl:for-each select="file">
<xsl:variable name="filename" select="file"/>
<xsl:sort order="descending" select="document($filename)/date">

   File:    <xsl:value-of select=".">     Date: <xsl:value-of
select="document($filename)/date">
</xsl:for-each>

The document will list the dates but it doesn't sort them.

I also tried <xsl:sort order="descending" data-type="number"
select="document($filename)/date"> but it doesn't work. It sorts the
list alphabetically after the name of file...file1,file2...file100. What
am I doing wrong? 10x

-- Anthony B. Coates Senior Partner Miley Watts Experts In Data +44 (79) 0543 9026 Data standards participant: ISO 20022 (ISO 15022 XML), ISO 19312, UN/CEFACT TMG, MDDL, FpML, UBL.


Current Thread
Keywords
xml