diff flys-aft/doc/repair.xsl @ 4083:44dc38ca8492

Added an optional XSL transformation to fix the raw DIPS files. flys-aft/trunk@3513 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 21 Dec 2011 14:56:29 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-aft/doc/repair.xsl	Wed Dec 21 14:56:29 2011 +0000
@@ -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