diff etl/doc/repair.xsl @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-aft/doc/repair.xsl@44dc38ca8492
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etl/doc/repair.xsl	Thu Apr 25 15:23:37 2013 +0200
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+    <xsl:output method="xml"/>
+
+    <xsl:key name="gauge-name" match="/STATIONEN/STATION" use="@NAME"/>
+
+    <xsl:template name="lookup-gauge-number">
+        <xsl:param name="name"/>
+        <xsl:param name="number"/>
+        <xsl:variable name="fixed-number">
+            <xsl:for-each select="document('pegelstationen.xml')">
+                <xsl:value-of select="key('gauge-name', $name)/@NUMMER"/>
+            </xsl:for-each>
+        </xsl:variable>
+        <xsl:choose>
+            <xsl:when test="$fixed-number != ''">
+                <xsl:value-of select="$fixed-number"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:value-of select="$number"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:template>
+
+    <xsl:template match="/DIPSFLYS/STATIONEN/PEGELSTATION">
+        <PEGELSTATION>
+        <xsl:attribute name="NUMMER">
+            <xsl:call-template name="lookup-gauge-number">
+                <xsl:with-param name="name" select="@NAME"/>
+                <xsl:with-param name="number" select="@NUMMER"/>
+            </xsl:call-template>
+        </xsl:attribute>
+        <xsl:apply-templates select="@*[local-name() != 'NUMMER']"/>
+        <xsl:apply-templates select="node()"/>
+        </PEGELSTATION>
+    </xsl:template>
+
+    <xsl:template match="@*|node()">
+       <xsl:copy>
+          <xsl:apply-templates select="@*|node()"/>
+       </xsl:copy>
+    </xsl:template>
+
+</xsl:stylesheet>

http://dive4elements.wald.intevation.org