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() < 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Ordered Records, Stefano Bonnin | Thread | RE: [xsl] Ordered Records, Michael Kay |
Re: [xsl] xml to multiple targets?, Robert Koberg | Date | RE: [xsl] txt -> xml, KIENLE, STEVEN C [IT |
Month |