Thomas J.S.: Rekursives Template, Minimum bestimmen

Beitrag lesen

Hallo,

<xsl:template name="minimum_x">
  <xsl:param name="Knoten" />

<xsl:with-param name="Knoten" select="$Knoten[position() != 1]" />
             <xsl:with-param name="min_temp"
select="substring-before($Knoten[1],'
')"/>

Was mit jetzt aufgefallen ist (und ich weiss jetzt nicht ob das nur hier im Forum so steht oder bei dir auch)

Im substring-before($Knoten[1],'') hast du kein Leerzeichen im zweiten Argument, also so: substring-before($Knoten[1],' ')

(das mit <xsl:with-param name="nodes"> statt "Knoten" ist wohl ein Tippfehler?))

Wenn ich jetzt das Template:
<xsl:template name="minimum_x">
  <xsl:param name="Knoten" />
  <xsl:param name="min_temp" select="0"/>
  <xsl:if test="$Knoten">
   <xsl:variable name="min-soweit">
    <xsl:call-template name="minimum_x">
     <xsl:with-param name="Knoten" select="$Knoten[position() != 1]" />
     <xsl:with-param name="min_temp" select="substring-before($Knoten[1],' ')"/>
    </xsl:call-template>
   </xsl:variable>
   xsl:choose
    <xsl:when test="$min-soweit &lt; .">
     <xsl:value-of select="$min-soweit" />
    </xsl:when>
    xsl:otherwise
     <xsl:value-of select="." />
    </xsl:otherwise>
   </xsl:choose>
  </xsl:if>
</xsl:template>

auf

<data>
<testdata>
  <gml>3569875,45 5896534,23</gml>
  <gml>3552365,56 583256975,56</gml>
</testdata>
</data>

mit

<xsl:call-template name="minimum_x">
     <xsl:with-param name="Knoten" select="/data/testdata/gml"/>
    </xsl:call-template>

anwende, bekomme ich als Ausgabe:
3569875,45 5896534,23
3552365,56 583256975,56

Was mir eigentlich unklar ist, was du in der Variable "min-soweit" erreichen möchtest.
Außerdem, du muss bedenken, dass ein Komma als Dezimaltrenner in XSLT nicht funktioniert. Deshalb wird ein "$min-soweit &lt; ." nie wahr werden.

Grüße
Thomas

--
Surftip: kennen Sie schon Pipolino's Clowntheater?
http://www.clowntheater-pipolino.net/