Re: [xsl] Ordered Records

Subject: Re: [xsl] Ordered Records
From: "Stefano Bonnin" <shpr@xxxxxxxxx>
Date: Mon, 11 Feb 2002 14:33:26 +0100
I'am sorry ... don't read my previous e-mail
The solution presented is ok
Thanks to everybody.

----- Original Message -----
From: "Stefano Bonnin" <shpr@xxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Monday, February 11, 2002 1:03 PM
Subject: Re: [xsl] Ordered Records


> Thanks but I have a problem:
>
> Did you try your solution (I think not)
>
> The function position() returns the child position relatively to his
parent.
> So, if I try your solution with the following xml document:
>
> <document>
>     <record-set>
>         <record> <number>10</number><record>
>         <record><number>9</number><record>
>         <record><number>8</number><record>
>         <record><number>7</number><record>
>         <record><number>6</number><record>
>         <record><number>5</number><record>
>         <record><number>4</number><record>
>         <record><number>3</number><record>
>         <record><number>2</number><record>
>         <record><number>1</number><record>
>     <record-set>
>     <record-set>
>         <record> <number>20</number><record>
>         <record><number>19</number><record>
>         <record><number>18</number><record>
>         <record><number>17</number><record>
>         <record><number>16</number><record>
>         <record><number>15</number><record>
>         <record><number>14</number><record>
>         <record><number>13</number><record>
>         <record><number>12</number><record>
>         <record><number>11</number><record>
>     <record-set>
> </document>
>
> I get all 20 records (ordered) because position() returns always a number
<
> 11.
>
> This is valid for all other solutions that the list gave me a few days
ago.
>
>
> Thanks.
>
>
> ----- Original Message -----
> From: "ronald heller" <ronald@xxxxxxxxxxx>
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> Sent: Monday, February 04, 2002 1:04 PM
> Subject: Re: [xsl] Ordered Records
>
>
> > It's reaaly not that hard with XSLT :-)
> >
> > ok an example:
> >
> > so lots of records throughout the XML, you want only to show the
smallest
> 10.
> >
> > Based on your XML I created a little example.
> > First sort your records from small to big, then only do something with
the
> > first 10.
> >
> > Cheers
> > RH
> >
> > XSLT:
> > <?xml version="1.0"?>
> > <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
> >
> >     <xsl:template match="/">
> >        <xsl:apply-templates select="//record">
> >           <xsl:sort select="number" data-type="number" />
> >        </xsl:apply-templates>
> >     </xsl:template>
> >
> >     <xsl:template match="record">
> >
> >        <xsl:choose>
> >           <xsl:when test="position() &lt; 11">
> >              <record>
> >                 <xsl:comment>position = <xsl:value-of
select="position()"
> > /></xsl:comment>
> >                 <xsl:apply-templates select="number" />
> >              </record>
> >           </xsl:when>
> >           <xsl:otherwise>
> >              <xsl:comment>at least 10 records have smaller
> > numbers</xsl:comment>
> >           </xsl:otherwise>
> >        </xsl:choose>
> >
> >     </xsl:template>
> >
> >     <xsl:template match="number">
> >        <number>
> >           <xsl:apply-templates />
> >        </number>
> >     </xsl:template>
> >
> > </xsl:stylesheet>
> >
> > XML
> > <document>
> >     <record-set>
> >        <record>
> >           <number>100</number>
> >        </record>
> >
> >        <record>
> >           <number>5</number>
> >        </record>
> >
> >        <record>
> >           <number>102</number>
> >        </record>
> >
> >        <record>
> >           <number>51</number>
> >        </record>
> >
> >        <record>
> >           <number>101</number>
> >        </record>
> >
> >        <record>
> >           <number>52</number>
> >        </record>
> >
> >        <record>
> >           <number>12</number>
> >        </record>
> >
> >        <record>
> >           <number>15</number>
> >        </record>
> >     </record-set>
> >
> >     <record-set>
> >        <record>
> >           <number>19</number>
> >        </record>
> >
> >        <record>
> >           <number>29</number>
> >        </record>
> >
> >        <record>
> >           <number>10</number>
> >        </record>
> >
> >        <record>
> >           <number>19</number>
> >        </record>
> >
> >        <record>
> >           <number>291</number>
> >        </record>
> >
> >        <record>
> >           <number>30</number>
> >        </record>
> >
> >        <record>
> >           <number>99</number>
> >        </record>
> >
> >        <record>
> >           <number>59</number>
> >        </record>
> >
> >        <record>
> >           <number>10</number>
> >        </record>
> >     </record-set>
> > </document>
> >
> > HTML:
> > <record>
> > <!--position = 1-->
> >     <number>5</number>
> > </record>
> >
> > <record>
> > <!--position = 2-->
> >     <number>10</number>
> > </record>
> >
> > <record>
> > <!--position = 3-->
> >     <number>10</number>
> > </record>
> >
> > <record>
> > <!--position = 4-->
> >     <number>12</number>
> > </record>
> >
> > <record>
> > <!--position = 5-->
> >     <number>15</number>
> > </record>
> >
> > <record>
> > <!--position = 6-->
> >     <number>19</number>
> > </record>
> >
> > <record>
> > <!--position = 7-->
> >     <number>19</number>
> > </record>
> >
> > <record>
> > <!--position = 8-->
> >     <number>29</number>
> > </record>
> >
> > <record>
> > <!--position = 9-->
> >     <number>30</number>
> > </record>
> >
> > <record>
> > <!--position = 10-->
> >     <number>51</number>
> > </record>
> >
> > <!--at least 10 records have smaller numbers-->
> > <!--at least 10 records have smaller numbers-->
> > <!--at least 10 records have smaller numbers-->
> > <!--at least 10 records have smaller numbers-->
> > <!--at least 10 records have smaller numbers-->
> > <!--at least 10 records have smaller numbers-->
> > <!--at least 10 records have smaller numbers-->
> >
> >
> >
> > At 12:37 PM 2/4/02 +0100, you wrote:
> > >Hi,
> > >
> > >I have the following XML document:
> > >
> > ><record-set>
> > ><record>
> > >     <number>N1</number>
> > ></record>
> > >:
> > >:
> > >:
> > >:
> > ><record>
> > >     <number>Nn</number>
> > ></record>
> > ></record-set>
> > >:
> > >:
> > >:
> > ><record-set>
> > ><record>
> > >     <number>M1</number>
> > ></record>
> > >:
> > >:
> > >:
> > >:
> > ><record>
> > >     <number>Mn</number>
> > ></record>
> > ></record-set>
> > >
> > >In each record-set the records are ordinated (the first has the
smallest
> > >number, the last has the bigger number).
> > >I'd like to take, between all record-set, only the 10 records with
> smallest
> > >number and print them on the screen.
> > >
> > >Can I do this with XSL? How?
> > >
> > >Somebody, if possible, can give me an hint for this problem?
> > >
> > >Thanks in advance.
> > >
> > >Stefano
> > >
> > >
> > >
> > >
> > >---
> > >Outgoing mail is certified Virus Free. (CopyRight FLASHH!)
> > >Checked by AVG anti-virus system (http://www.grisoft.com).
> > >Version: 6.0.320 / Virus Database: 179 - Release Date: 30/01/02
> > >
> >
> >
> >  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> >
>
>
> ---
> Outgoing mail is certified Virus Free. (CopyRight FLASHH!)
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.323 / Virus Database: 180 - Release Date: 08/02/02
>
>
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
>


---
Outgoing mail is certified Virus Free. (CopyRight FLASHH!)
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.323 / Virus Database: 180 - Release Date: 08/02/02


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


Current Thread