Code:
<?xml version="1.0" encoding="UTF-8"?>
<trainlist>
<train no="67" startstation="Berlin" outtime="6:15" destinationstation="Munich" intime="14:15">
<connectingstation intime="10:00" outtime="10:15">Frankfurt</connectingstation>
<connectingstation intime="9:00" outtime="9:15">Cologne</connectingstation>
</train>
<train no="65" startstation="Copenhagen" outtime="6:15" destinationstation="Munich" intime="14:15">
<connectingstation intime="10:00" outtime="10:15">Cologne</connectingstation>
</train>
<train no="65" startstation="Copenhagen" outtime="6:15" destinationstation="Munich" intime="14:15">
</train>
</trainlist>
make a html table use xsl
Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" method="html"/>
<xsl:template match="/">
<html>
<xsl:apply-templates select="trainlist">
<xsl:sort select="train/@no"/>
</xsl:apply-templates>
</html>
</xsl:template>
<xsl:template match="trainlist">
<table border="3px solid">
<xsl:apply-templates select="train"/>
</table>
</xsl:template>
<xsl:template match="train">
<tr>
<td>
<xsl:text>Stationnr.</xsl:text>
</td>
<td colspan="2">
<xsl:text>Trainnr. </xsl:text>
<xsl:value-of select="@no"/>
</td>
<td><xsl:text> in</xsl:text></td>
<td><xsl:text> out</xsl:text></td>
</tr>
<tr>
<td>
<xsl:value-of select="1"/>
</td>
<td colspan="2">
<xsl:value-of select="@startstation"/>
</td>
<td/>
<td>
<xsl:value-of select="@outtime"/>
</td>
</tr>
<xsl:if test="connectingstation">
<xsl:apply-templates select="connectingstation">
<xsl:sort select="translate(@intime,':','')" data-type="number"/>
<xsl:with-param name="no" select="1"/>
</xsl:apply-templates>
</xsl:if>
<tr>
<td>
<xsl:value-of select="count(child::*)+2"/>
</td>
<td colspan="2">
<xsl:value-of select="@destinationstation"/>
</td>
<td>
<xsl:value-of select="@intime"/>
</td>
<td/>
</tr>
</xsl:template>
<xsl:template match="connectingstation">
<xsl:param name="no"/>
<tr>
<td>
<xsl:value-of select="position()+$no"/>
</td>
<td colspan="2">
<xsl:value-of select="."/>
</td>
<td>
<xsl:value-of select="@intime"/>
</td>
<td>
<xsl:value-of select="@outtime"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
result
Code:
<html>
<table border="3px solid">
<tr>
<td>Stationnr.</td>
<td colspan="2">Trainnr. 67</td>
<td> in</td>
<td> out</td>
</tr>
<tr>
<td>1</td>
<td colspan="2">Berlin</td>
<td></td>
<td>6:15</td>
</tr>
<tr>
<td>2</td>
<td colspan="2">Cologne</td>
<td>9:00</td>
<td>9:15</td>
</tr>
<tr>
<td>3</td>
<td colspan="2">Frankfurt</td>
<td>10:00</td>
<td>10:15</td>
</tr>
<tr>
<td>4</td>
<td colspan="2">Munich</td>
<td>14:15</td>
<td></td>
</tr>
<tr>
<td>Stationnr.</td>
<td colspan="2">Trainnr. 65</td>
<td> in</td>
<td> out</td>
</tr>
<tr>
<td>1</td>
<td colspan="2">Copenhagen</td>
<td></td>
<td>6:15</td>
</tr>
<tr>
<td>2</td>
<td colspan="2">Cologne</td>
<td>10:00</td>
<td>10:15</td>
</tr>
<tr>
<td>3</td>
<td colspan="2">Munich</td>
<td>14:15</td>
<td></td>
</tr>
<tr>
<td>Stationnr.</td>
<td colspan="2">Trainnr. 65</td>
<td> in</td>
<td> out</td>
</tr>
<tr>
<td>1</td>
<td colspan="2">Copenhagen</td>
<td></td>
<td>6:15</td>
</tr>
<tr>
<td>2</td>
<td colspan="2">Munich</td>
<td>14:15</td>
<td></td>
</tr>
</table>
</html>
Bookmarks