Ändern globaler Variablen !?!
Dennis
- xsl
Hi.
Ich habe mich hier schon im Forum umgesehen und bin auch zum Teil fündig geworden, leider nicht ganz zu meiner vollen Zufriedenheit ;).
Ich suche eine Möglichkeit entweder globale Variablen zu ändern oder Variablen irgendwie NACH einem Schleifendurchlauf weiterhin zur Verfügung zu haben.
Mit Rekursion sieht es an dieser Stelle schlecht aus...
Es soll eine Tabelle erstellt werden, die Daten aus einem Knotenset zusammenfasst, ABER auch noch ein Pulldown-Menü beinhält. Dieses Pull-Down-Menü bedarf einer weiteren Schleife um das selbe Knotenset.
Bis hierhin alles kein Problem! Nur soll beim nächsten Durchlauf der "äußeren" Schleife gemerkt werden, wo die "innere" Schleife zuletzt war und die bereits verarbeiteten Sätze sollen nicht ausgegeben werden!!
for-each (oder template) über Knotenset1
Ausgabe der Daten .....
<select....>
for-each über Knotenset1
<option>Eintrag</option>
HIER INDEX VON KNOTENSET1 MERKEN!!
/for-each
/for-each
Also, den Index, den ich mir gemerkt habe, soll im nächsten Schleifendurchlauf, der äußeren Schleife vorhanden sein.
Den Original-Source-Code kann/will/darf ich hier nicht veröffentlichen. Wenn jemand eine Idee hat, bitte melden.
Vielleicht geht es ja doch mit Rekursion nur ich bekomme es momentan nicht hin !!
Danke
PS: Besser beschreiben konnte ich es nicht...
Hi.
Ich habe mich hier schon im Forum umgesehen und bin auch zum Teil fündig geworden, leider nicht ganz zu meiner vollen Zufriedenheit ;).Ich suche eine Möglichkeit entweder globale Variablen zu ändern oder Variablen irgendwie NACH einem Schleifendurchlauf weiterhin zur Verfügung zu haben.
Hallo,
jedes gute XSLT-Buch wird dir sagen, dass es nicht GEHT!
Tip: Lerne einmal in XSLT zu denken.
Grüße,
Wolfram
Hallo,
jedes gute XSLT-Buch wird dir sagen, dass es nicht GEHT!
Tip: Lerne einmal in XSLT zu denken.Grüße,
Wolfram
Danke für den hilfreichen Tipp!
In XSLT zu denken ist aus meiner Sicht kompliziert, da ich sonst eher mit Programmiersprachen (C++) zu tun habe und solche Sachen dort ein wenig anders funktionieren.
Jetzt steh ich allerdings vor einem großen Problem *LOL*.
bis denn
Hallo,
jedes gute XSLT-Buch wird dir sagen, dass es nicht GEHT!
Jeder vernünftiger Forumsteilnehmener würde ihm auch sagen wie es geht.
Tip: Lerne einmal in XSLT zu denken.
Tip: Lerne antworten (und XSLT).
Grüße
Thomas
Hallo,
Ich suche eine Möglichkeit entweder globale Variablen zu ändern oder Variablen irgendwie NACH einem Schleifendurchlauf weiterhin zur Verfügung zu haben.
auch wenn grob, aber dass du Variablen in XSLT nciht ändern kannst wurde schon gesagt.
Dafür sind Paramters da. xsl:param bzw. dann beim Aufruf xsl:with-pram
Mit Rekursion sieht es an dieser Stelle schlecht aus...
Darum wirst du nicht herumkommen, es kommt nur darauf an, dass du die Recursion bzw. den recursiven Aufruf eines Templates richtig machst.
Bis hierhin alles kein Problem! Nur soll beim nächsten Durchlauf der "äußeren" Schleife gemerkt werden, wo die "innere" Schleife zuletzt war und die bereits verarbeiteten Sätze sollen nicht ausgegeben werden!!
Also, den Index, den ich mir gemerkt habe, soll im nächsten Schleifendurchlauf, der äußeren Schleife vorhanden sein.
<xsl:template name="pulldown">
<xsl:param name="merkeindex" />
<xsl:param name="indexervariable" select="wasauchimmer" />
<!--
hier was der template machen soll
-->
<xsl:if test="eine bedingung die auf die zweit schleife hindeutet">
<xsl:call-template name="pulldown">
<xsl:with-param name="merkeindex" select="$indexervariable" />
</xsl:call-template>
</xsl:if>
</xsl:template>
Den Original-Source-Code kann/will/darf ich hier nicht veröffentlichen.
Dann mach daraus ein Beispiel mit anderen Elementnahmen etc. etc. sonst ist es mächtig problematisch deine Gedanken zu lesen.
Grüße
Thomas