Andi: Rekursives Template, Minimum bestimmen

Beitrag lesen

Hallo,

Die Objekte, welche dargestellt werden sollen, sind alle so aufgebaut und werden selbst innerhalb des SVG- Teils über das mode- Attribut aufgerufen:

<xsl:template match="xplan:BPlanAuszug/wfs:FeatureCollection/gml:featureMember/xplan:BaugebietsFlaechenTeil" mode="Ebene03">

Das Modeattribut regelt die Zeichenebene.

Was bedeutet das? (Heisst das, dass (hier) von den 5 gml:pos z.B. nur die ersten drei in die Berechnung herangezogen werden sollen?)

Es soll von den 5 Werten hier der kleinste Wert herausgesucht werden, wie es ja in dem Template gemacht wird, das du mir geschickt hattest. Also in diesem Fall 3480252.383. Für die Werte mit der 5 vorne wird das gleiche gemacht. Ich rufe das Template oben innerhalb des Blockes auf, wo ich das SVG erzeuge. Ich nutze das Modeattribut nur, um einfach meine Objekte irgendwo an einem Punkt im XSLT- File gebündelt zu definieren können. Ich muss dann nicht darauf achten, in welcher Reihenfolge ich das mache. Jedes Objekt hat dann ein mode attribut und im SVG sieht es wie folgt aus:

<xsl:apply-templates mode="Ebene01"/>
<xsl:apply-templates mode="Ebene02"/>
<xsl:apply-templates mode="Ebene03"/>
<xsl:apply-templates mode="Ebene04"/>
<xsl:apply-templates mode="Ebene05"/>

So werden erst Elemente mit modeattribut = Ebene01 gezeichnet und so weiter.

Damit ich es richtig verstehe:
Du hast eine bestimmte(?) anzahl von gml:pos Elementen.
Da möchtest du herausfinden welches x-Wert (substring-befor) das mittlere ist?

Die Anzahl der Elemente ist beliebig und ich benötige Minmal und Maximalwert für x und y. Also für jeweils für Werte vor und nach dem Leerzeichen.

Also von diesen Werten das Mittelre herausfinden? (das wäre dann hier entweder *67.5* oder *89.5*, das wäre natürlich etwas schwierig)
3480252.383
3480289.585
3480267.599
3480266.38776072
Wenn es nur jeweils die ersten drei Elemente zählen sollten, ist das dann leichter.
Aber jetzt verstehe ich warum du das mit einem recursiven Template machen wolltest: du möchtest bei jeden Konten den ersten Teil mit dem minimum vergleichen. Nur was soll als Ausgabe kommen: ein Wert oder mehrere Werte?

Ein Wert soll herauskommen. Ich hatte gedacht, dass man immer einen Knoten nimmt und den mit dem nächsten oder ähnlich vergleicht, um so den Minimalwert zu bekommen. Das ist glaub eleganter als das Andere. Wobei mir damit auch schon sehr geholfen ist :-)

Beste Grüße
andi

Grüße
Thomas