sascha@4083: <?xml version="1.0" encoding="utf-8"?> sascha@4083: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> sascha@4083: sascha@4083: <xsl:output method="xml"/> sascha@4083: sascha@4083: <xsl:key name="gauge-name" match="/STATIONEN/STATION" use="@NAME"/> sascha@4083: sascha@4083: <xsl:template name="lookup-gauge-number"> sascha@4083: <xsl:param name="name"/> sascha@4083: <xsl:param name="number"/> sascha@4083: <xsl:variable name="fixed-number"> sascha@4083: <xsl:for-each select="document('pegelstationen.xml')"> sascha@4083: <xsl:value-of select="key('gauge-name', $name)/@NUMMER"/> sascha@4083: </xsl:for-each> sascha@4083: </xsl:variable> sascha@4083: <xsl:choose> sascha@4083: <xsl:when test="$fixed-number != ''"> sascha@4083: <xsl:value-of select="$fixed-number"/> sascha@4083: </xsl:when> sascha@4083: <xsl:otherwise> sascha@4083: <xsl:value-of select="$number"/> sascha@4083: </xsl:otherwise> sascha@4083: </xsl:choose> sascha@4083: </xsl:template> sascha@4083: sascha@4083: <xsl:template match="/DIPSFLYS/STATIONEN/PEGELSTATION"> sascha@4083: <PEGELSTATION> sascha@4083: <xsl:attribute name="NUMMER"> sascha@4083: <xsl:call-template name="lookup-gauge-number"> sascha@4083: <xsl:with-param name="name" select="@NAME"/> sascha@4083: <xsl:with-param name="number" select="@NUMMER"/> sascha@4083: </xsl:call-template> sascha@4083: </xsl:attribute> sascha@4083: <xsl:apply-templates select="@*[local-name() != 'NUMMER']"/> sascha@4083: <xsl:apply-templates select="node()"/> sascha@4083: </PEGELSTATION> sascha@4083: </xsl:template> sascha@4083: sascha@4083: <xsl:template match="@*|node()"> sascha@4083: <xsl:copy> sascha@4083: <xsl:apply-templates select="@*|node()"/> sascha@4083: </xsl:copy> sascha@4083: </xsl:template> sascha@4083: sascha@4083: </xsl:stylesheet>