stefanS: Inhalt eines Knotens bestimmen

Hallo!

Ich möchte den Inhalt der Knoten 2-5 ausgeben.
Da ich nicht für jeden Knoten explizit den direkten Namen angeben will, will ich das per Schleife lösen. Als Ergebnis soll "-B-C-D-E" sein.

Das sieht dann so aus:

<knoten>
<knoten1>A</knoten1>
<knoten2>B</knoten2>
<knoten3>C</knoten3>
<knoten4>D</knoten4>
<knoten5>E</knoten5>
<knoten6>F</knoten6>
<knoten7>G</knoten7>
</knoten>

<xsl:template name="knotenAusgeben">
    <xsl:param name="Zaehler" select="2"/>
    <xsl:param name="ergebnisString" />
    xsl:choose
      <xsl:when test="$Zaehler &gt;= 2 and $Zaehler &lt;= 5">
        <xsl:variable name="column" select="concat('knoten', $Zaehler)"/>
        <xsl:variable name="knotenInhalt" select="$column"/>
          <xsl:call-template name="knotenAusgeben">
            <xsl:with-param name="Zaehler" select="$Zaehler + 1" />
            <xsl:with-param name="ausgabe" select="concat( $ergebnisString, '-', $knotenInhalt)"/>
          </xsl:call-template>
      </xsl:when>
      xsl:otherwise
        <xsl:value-of select="$ergebnisString"></xsl:value-of>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

Dachte, ich erhalte jetzt die gewünschte Ausgabe "-B-C-D-E", bekommen tu ich aber "knoten2-knoten3-knoten4-knoten5" angezeigt.

Ich schaffe es nicht per Name des Knotens in einer Variable an den Inhalt des Knotens ranzubekommen.
Habe ich da mit XSLT überhaupt eine Chance?

Danke!

  1. Hallo stefanS,

    Ich möchte den Inhalt der Knoten 2-5 ausgeben.
    Da ich nicht für jeden Knoten explizit den direkten Namen angeben will, will ich das per Schleife lösen. Als Ergebnis soll "-B-C-D-E" sein.

    Naheliegender Ansatz:

    <xsl:template match="knoten">  
      <xsl:for-each select="*[position() &gt;= 2 and position() &lt;= 5]">  
        <xsl:text>-</xsl:text><xsl:value-of select="."/>  
      </xsl:for-each>  
    </xsl:template>
    

    Ergebnis: -B-C-D-E

    Grüße,
    Thomas

    1. Ui, das war einfach :-)

      DANKE!