Janine S.: XSL Schleife

Beitrag lesen

Hallo allerseits,

da mir hier schonmal schnell und gut geholfen wurde, hoffe ich diesmal wieder auf eure Unterstützung. Ich habe bei XSL-Schleifen immer wieder einen Knoten im Kopf und komme an der Stelle nicht weiter. Habe dazu meinen Code so vereinfacht, dass er hoffentlich noch verständlich ist.

Folgender XML-Inhalt, der nicht verändert werden soll:

<?xml version="1.0" encoding="UTF-8"?>
<list>
   <title>
      <de>Titel DE</de>
      <en>Titel EN</en>
   </title>
</list>

Was ich ausgeben will (txt-Format bzw. konkreter csv):

Titel DE
Titel EN

In der XSL-Datei, die recht komplex ist, will/kann ich allerdings nicht zwei Codes haben, wie bei:

<xsl:value-of select="list/title/de/text()"/>
<xsl:value-of select="list/title/en/text()"/>

Deswegen dachte ich mir, ich überlege mir was cooles. Klappt nur nicht :(

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
   <xsl:output media-type="text/plain" encoding="utf-8" version="2.0" method="text"/>
   <xsl:template match="list">
      <xsl:variable name="lang">
         <lang>de</lang>
         <lang>en</lang>
      </xsl:variable>
      <xsl:for-each select="$lang">
         <xsl:variable name="title" select="title/* [name() = $lang/lang]"/>
         <xsl:value-of select="$title"/>
      </xsl:for-each>
   </xsl:template>
</xsl:stylesheet>

Wisst ihr warum?

Grüße, Janine

akzeptierte Antworten