Mercurial > dive4elements > river
view etl/contrib/dips2html.xsl @ 5890:6ea004d51203
Datacage: Introduced <dc:group epxr="xpath" type="type"> ... </dc:group> and XPath function dc:group-key().
This splits the current result set into groups formed by expr. The type defaults to string.
Afterwards all these groups are iterated by there natural order.
The dc:group-key() gives access to the result of the grouping expression that forms a group.
Say, you have a result set like this:
name | description
-----+------------
a | foo
a | bar
b | baz
b | bla
c | blub
you can use:
<dc:group expr="$name">
<group name="{dc:group-key()}">
<dc:for-each>
<description value="{$description}"/>
</dc:for-each>
</group>
</dc:group>
to create:
<group name="a">
<description name="foo"/>
<description name="bar"/>
</group>
<group name="b">
<description name="baz"/>
<description name="bla"/>
</group>
<group name="c">
<description name="blub"/>
</group>
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 02 May 2013 20:52:18 +0200 |
parents | 5aa05a7a34b7 |
children |
line wrap: on
line source
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:html="http://www.w3.org/1999/xhtml" version="1.0" exclude-result-prefixes="html"> <xsl:output method="html"/> <xsl:template name="out"> <xsl:param name="value"/> <xsl:choose> <xsl:when test="$value = ''">-/-</xsl:when> <xsl:otherwise> <xsl:value-of select="$value"/> </xsl:otherwise> </xsl:choose> </xsl:template> <xsl:template match="PEGELSTATION"> <tr> <td> <xsl:value-of select="@NAME"/> </td> <td> <xsl:value-of select="@NUMMER"/> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@HOCHWERT"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@TK_BLATT"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@BETREIBER"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@GEOBREITE"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@GEOLAENGE"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@GEWAESSER"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@GUELTIGAB"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@LAGESTATUS"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@RECHTSWERT"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@ABLESUNGBIS"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@ABLESUNGSEIT"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@STATIONIERUNG"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@EINGERICHTETAM"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@EINZUGSGEBIET_AEO"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@GEBIETSKENNZIFFER"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@KILOMETRIERUNG_AB"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@LAGE_AM_GEWAESSER"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@ENTFERNUNGMUENDUNG"/> </xsl:call-template> </td> <td> <xsl:call-template name="out"> <xsl:with-param name="value" select="@KILOMETRIERUNGSRICHTUNG"/> </xsl:call-template> </td> </tr> <xsl:if test="string-length(@BESCHREIBUNG) > 0"> <tr> <td/> <td colspan="21"> <xsl:value-of select="@BESCHREIBUNG"/> </td> </tr> </xsl:if> </xsl:template> <xsl:template match="/"> <html> <head> <title>DiPs</title> </head> <body> <table border="1" cellspacing="0" width="50%"> <tr> <th>Name</th> <th>Nummer</th> <th>Hochwert</th> <th>TK-Blatt</th> <th>Betreiber</th> <th>Geo-Breite</th> <th>Geo-Länge</th> <th>Gewässer</th> <th>Gültig ab</th> <th>Lagestatus</th> <th>Rechtswert</th> <th>Ablesung seit</th> <th>Ablesung bis</th> <th>Stationierung</th> <th>Eingerichtet am</th> <th>Einzugsgebiet AEO</th> <th>Gebietskennziffer</th> <th>Kilometrierung ab</th> <th>Lage am Gewässer</th> <th>Entfernung zu Mündung</th> <th>Kilometrierungsrichtung</th> </tr> <xsl:apply-templates select="/DIPSFLYS/STATIONEN"/> </table> </body> </html> </xsl:template> <xsl:template match="text()"/> </xsl:stylesheet>