Thomas J.S.: Pfad in einer Variable verwenden

Beitrag lesen

Hallo,

ich rufe in einer XSL-Datei ein Template auf. Dabei übergebe ich einen Pfad als Variable:
<xsl:with-param name="test_id" select="'daten/Struktur1/Tabelle1'"/>
Dieser Pfad ist bewusst in '', da der der Inhalt dieses Pfades erst in dem 2. Template gelesesn werden soll.

Das kann nicht wirklich gehen, es sei denn du bist in einem recursiven Tempalte.
Wenn du versucht den Wert einer Variable die in einem Template definiert ist, in einem anderen Template aufzurufen, bekommst du eine Fehlermeldung, dass die Variable (im 2. Template )nicht definiert ist.

Beim Parameter kannst du im gegensatz zu Variable den Wert ändern, deshalb kann man ja eben mit xsl:with-param einen anderen Wert dem Paramter zuweisen.
Trotzdem gilt hier das selbe wie bei Variablen, die Wirkungsbereich der Variable / des Prameters muss stimmen.

In dem 2. Template hole ich mir die Variable dann:
<xsl:param name="test_id"/>

Für mich definierst du erst hier eigentlich deinen Parameter.

<xsl:value-of select="$test_id"/>
Als Ausgabe bekomme ich dann aber nur das:
daten/Struktur1/Tabelle1
Unter "daten/Struktur1/Tabelle1" in der XML-Datei steht aber etwas ganz anderes (eine Zahl).

Ist logeisch, nach dem du mit select"'blabla'" einfach einen String erzeugt hast.

»»Wenn ich es oben ohne die '' in das Selekt reinschreibe, dann liest er es direkt von dort aus, wo er oben steht. Dann bekomme ich wieder eine andere Zahl, da es oben das falsche Template ist.

Wie kann ich das übergeben, damit es funktionert?

Übergehen kannst du es nicht. Es funktioniert alles so wie es soll.
Du muss deine Templates umarbeiten, oder dir deine Parameters anders definieren.
Bzw. auf Grund der von dir gelieferten Infos, sehe ich keine andere Lösung.

Grüße
Thomas