hi..
am a beginner in xml programming and i'd like some help on how to sort data in the xml file.
my xml is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test2.xsl"?>
<company>
<vehicle>
<reg_plate>1FTN-707</reg_plate>
<driver_id>101786J</driver_id>
<day>
<date>2006-7-27</date>
<trip>
<odometer>
<t_start>9100</t_start>
<t_finish>10001</t_finish>
</odometer>
<purpose>seminar</purpose>
<purchase>
<fuel>95</fuel>
<cost>133</cost>
</purchase>
</trip>
</day>
<day>
<date>2006-7-28</date>
<trip>
<odometer>
<t_start>10001</t_start>
<t_finish>10010</t_finish>
</odometer>
<purpose>demo</purpose>
<purchase>
<fuel>20.5</fuel>
<cost>31</cost>
</purchase>
</trip>
<trip>
<odometer>
<t_start>10010</t_start>
<t_finish>10015</t_finish>
</odometer>
<purpose>demo</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
</day>
</vehicle>
<vehicle>
<reg_plate>1CBL-099</reg_plate>
<driver_id>195767B</driver_id>
<day>
<date>2006-7-2</date>
<trip>
<odometer>
<t_start>1001</t_start>
<t_finish>1050</t_finish>
</odometer>
<purpose>to conference</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
<trip>
<odometer>
<t_start>1050</t_start>
<t_finish>1100</t_finish>
</odometer>
<purpose>from conference</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
</day>
<day>
<date>2006-7-3</date>
<trip>
<odometer>
<t_start>1100</t_start>
<t_finish>1500</t_finish>
</odometer>
<purpose>Customer tour</purpose>
<purchase>
<fuel>80</fuel>
<cost>120</cost>
</purchase>
</trip>
</day>
</vehicle>
<vehicle>
<reg_plate>1ADA-095</reg_plate>
<driver_id>234100K</driver_id>
<day>
<date>2006-7-10</date>
<trip>
<odometer>
<t_start>27675</t_start>
<t_finish>27700</t_finish>
</odometer>
<purpose>private</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
</day>
<day>
<date>2006-7-11</date>
<trip>
<odometer>
<t_start>27700</t_start>
<t_finish>27710</t_finish>
</odometer>
<purpose>private</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
<trip>
<odometer>
<t_start>27710</t_start>
<t_finish>27730</t_finish>
</odometer>
<purpose>private</purpose>
<purchase>
<fuel>50</fuel>
<cost>70.5</cost>
</purchase>
</trip>
</day>
</vehicle>
<vehicle>
<reg_plate>1CPP-101</reg_plate>
<driver_id>101001A</driver_id>
<day>
<date>2006-7-21</date>
<trip>
<odometer>
<t_start>30054</t_start>
<t_finish>30090</t_finish>
</odometer>
<purpose>Service call</purpose>
<purchase>
<fuel>25.5</fuel>
<cost>32.3</cost>
</purchase>
</trip>
</day>
</vehicle>
<vehicle>
<reg_plate>1BSC-303</reg_plate>
<driver_id>100101B</driver_id>
<day>
<date>2006-7-9</date>
<trip>
<odometer>
<t_start>45171</t_start>
<t_finish>45221</t_finish>
</odometer>
<purpose>Test drive</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
</day>
<day>
<date>2006-7-10</date>
<trip>
<odometer>
<t_start>45221</t_start>
<t_finish>45250</t_finish>
</odometer>
<purpose>Car service</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
</day>
<day>
<date>2006-7-11</date>
<trip>
<odometer>
<t_start>45250</t_start>
<t_finish>45300</t_finish>
</odometer>
<purpose>private</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
<trip>
<odometer>
<t_start>45300</t_start>
<t_finish>45375</t_finish>
</odometer>
<purpose>demo</purpose>
<purchase>
<fuel>60</fuel>
<cost>75.5</cost>
</purchase>
</trip>
<trip>
<odometer>
<t_start>45375</t_start>
<t_finish>45420</t_finish>
</odometer>
<purpose>Service call</purpose>
<purchase>
<fuel>-</fuel>
<cost>-</cost>
</purchase>
</trip>
</day>
</vehicle>
</company>
i hav to sort the date using a xslt stylesheet and i hav done something like that:
<?xml version="1.0" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table>
<tr>
<td>Date</td>
<td>Registration Plate</td>
<td>Driver ID</td>
<td>Trip Start</td>
<td>Trip Finish</td>
<td>Purpose</td>
<td>Fuel</td>
<td>Cost</td>
<td>km Travelled</td>
<td>km Travelled/day</td>
</tr>
<xsl:apply-templates select="*" />
</table>
</body>
</html>
</xsl:template>
<xsl:template match="*">
<xsl:for-each select="vehicle">
<xsl:sort select="day/date" data-type="text" />
<tr>
<td><xsl:apply-templates select="vehicle"/></td>
</tr>
</xsl:for-each>
</xsl:template>
<xsl:template match="vehicle">
<tr>
<td><xsl:value-of select="reg_plate" /></td>
<td><xsl:value-of select="driver_id" /></td>
<td><xsl:apply-templates select="day" /></td>
</tr>
</xsl:template>
<xsl:template match="day">
<tr>
<td>
<xsl:value-of select="date" />
</td>
<td>
<xsl:apply-templates select="trip" />
</td>
</tr>
</xsl:template>
<xsl:template match="trip">
<tr>
<td>
<xsl:apply-templates select="odometer" />
</td>
<td>
<xsl:value-of select="purpose" />
</td>
<td>
<xsl:apply-templates select="purchase" />
</td>
</tr>
</xsl:template>
<xsl:template match="odometer">
<tr>
<td>
<xsl:value-of select="trip_start" />
</td>
<td>
<xsl:value-of select="trip_finish" />
</td>
</tr>
</xsl:template>
<xsl:template match="purchase">
<tr>
<td>
<xsl:value-of select="fuel" />
</td>
<td>
<xsl:value-of select="cost" />
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
there is something wrong with this xsl..
could any1 plz help?
would be very grateful if some1 could..
thx..
Enter your message below
Sign in or Join us (it's free).