ThomasM: Problem mit gleichen Tags in xsl

Beitrag lesen

Hallo Mona,

Ausschnitt im xsl Dokument:

<h2><u>Aufstellung</u></h2> <table> <h3>Aufstellung des <xsl:value-of select="Fussballspiel/Heim"/></h3> <xsl:for-each select="Fussballspiel/Aufstellung/AufstellungHeim"> <tr> <td><xsl:value-of select="Spieler"/></td> </tr> </xsl:for-each> </table>

So wird mir im Browser nur der erste Spieler "Kevin Trapp" angezeigt. Ich würde mir aber gerne alle Spieler, am besten untereinander, anzeigen lassen.

Das xsl:for-each müsste auf Spieler zeigen und dann können die jeweiligen Textknoten via . oder text() ausgelesen werden:

<xsl:for-each select="Fussballspiel/Aufstellung/AufstellungHeim/Spieler">
  <tr>
    <td>
      <xsl:value-of select="."/>
    </td>
  </tr>
</xsl:for-each>

Statt der Tabelle bietet sich evtl. eine Liste an (ul/li) und h3 ist kein Kindelement von table.

Alternativ lässt sich mit mehreren Templates arbeiten, hier die Listenvariante:

<xsl:template match="Fussballspiel">
  <h3><xsl:value-of select="Heim"/></h3>
  <ul>
    <xsl:apply-templates select="Aufstellung/AufstellungHeim/Spieler"/>
  </ul>
</xsl:template>

<xsl:template match="Spieler">
  <li><xsl:value-of select="."/></li>
</xsl:template>

Grüße,
Thomas