for-each über einen variablen Knoten
Edmund Schöpf
- xsl
0 hh
Ich versuche ein "dynamisches loop" zu verwenden.
Das loop über einen "variablen Knotennamen" funktioniert.
<xsl:variable name="MY_ELEMENT" select="/ROOT/UNTERKNOTEN" />
<xsl:for-each select="$MY_ELEMENT">
.....
Bei folgenden Loop erhalte den Fehler (der merge zwischen xml und xsl erfolgt über eine Javaklasse): #STRING kann nicht in NodeList konvertiert werden!
$ANDERE_VARIABLE wird in meinem Falle an das Template übergeben. Kann aber auch eine x-beliebeige Variable sein. Funktioniert leider nicht.
<xsl:variable name="MY_ELEMENT" select="$ANDERE_VARIABLE" />
<xsl:for-each select="$MY_ELEMENT">
.....
Was muss ich tun, damit der Knoten den ich auslese variabel sein kann.
Danke
Edy
Bist du dir auch sicher, dass hinter $ANDERE_VARIABLE auch ein Knoten steckt?
Gruß, hh
Bist du dir auch sicher, dass hinter $ANDERE_VARIABLE auch ein Knoten steckt?
Gruß, hh
Ich rufe ein Template auf und übergib dort den Wert wie folgt:
<xsl:call-template name="MEINTEMPLATE">
<xsl:with-param name="ANDERE_VARIABLE">/ROOT/UNTERKNOTEN</xsl:with-param>
</xsl:call-template>
Mein Template sieht dann so aus:
<xsl:template name="MEINTEMPLATE">
<xsl:param name="ANDERE_VARIABLE"/>
<xsl:variable name="MY_ELEMENT" select="$ANDERE_VARIABLE" />
<xsl:for-each select="$MY_ELEMENT">
.....
Ich hatte es auch schon direkt mit dem for-each auf $ANDERE_VARIABLE versucht. Leider ohne Erfolg.
Edy
Hallo,
Ich rufe ein Template auf und übergib dort den Wert wie folgt:
<xsl:call-template name="MEINTEMPLATE">
<xsl:with-param name="ANDERE_VARIABLE">/ROOT/UNTERKNOTEN</xsl:with-param>
Der Wert des Paremters ist hier ein String!
<xsl:with-param name="ANDERE_VARIABLE" select="/ROOT/UNTERKNOTEN" />
Grüße
Thomas
Hallo,
Ich rufe ein Template auf und übergib dort den Wert wie folgt:
<xsl:call-template name="MEINTEMPLATE">
<xsl:with-param name="ANDERE_VARIABLE">/ROOT/UNTERKNOTEN</xsl:with-param>Der Wert des Paremters ist hier ein String!
<xsl:with-param name="ANDERE_VARIABLE" select="/ROOT/UNTERKNOTEN" />
Grüße
Thomas
Danke für den Hinweis. Das habe ich soeben versucht. Bekomme leider immer denselben Fehler. Ich möchte praktisch,dass das Loop einmal über /ROOT/UNTERKNOTEN und ein anderes mal über /ROOT/ANDERENKNOTEN gemacht wird und nicht über den Wert des Elements "/ROOT/UNTERKNOTEN".
Edy
Halloo,
Danke für den Hinweis. Das habe ich soeben versucht. Bekomme leider immer denselben Fehler. Ich möchte praktisch,dass das Loop einmal über /ROOT/UNTERKNOTEN und ein anderes mal über /ROOT/ANDERENKNOTEN gemacht wird und nicht über den Wert des Elements "/ROOT/UNTERKNOTEN".
Dann machst du was noch immer falsch.
Es ist an sich kein Problem sowas zu machen:
<xsl:call-template name="meinTemplate">
<xsl:with-param name="A" select="Konten1"/>
<xsl:with-param name="B" select="Knoten2"/>
</xsl:call-template>
<xsl:template name="meinTemplate">
<xsl:param name="A"/>
<xsl:param name="B"/>
<xsl:for-each select="$A//element">
<xsl:if test="@attr = 'foo'">
<Knoten3 attr="{$B}" />
</xsl:if>
</xsl:for-each>
</xsl:template>
Grüße
Thomas