Hallo,
ich habe Probleme damit, den temporären Ergebnisbaum auszulesen, der zu Testzwecken folgendermaßen erstellt wird:
<xsl:variable name="figure-list">
<xsl:for-each select="//figure">
<tmp>
<caption><xsl:value-of select="caption" /></caption>
</tmp>
</xsl:for-each>
</xsl:variable>
Das ist so korrekt.
> Im Template liefert mir `<xsl:value-of select="$figure-list" />`{:.language-xml} nun zwar den Inhalt aller <figure>s (das Anlegen dieser Liste funktioniert offensichtlich), allerdings erhalte ich mit `<xsl:value-of select="$figure-list/tmp[1]" />`{:.language-xml} oder ähnlichen Versuchen, auf die einzelnen Elemente zuzugreifen stets ein leeres Ergebnis.
>
Es sollte so etwas sein:
<xsl:value-of select="$figure-list/tmp[1]/caption" /> denn du hast ja noch <caption> da drinn (wobei das an sich auch ohne funktioniert).
~~~xml
<content>
<figure id="schuhkarton">
<src>bilder/schuhkarton.jpg</src>
<caption>Ein Schuhkarton</caption>
</figure>
<figure id="schuhkarton">
<src>bilder/schuhkarton.jpg</src>
<caption>xxxxx Ein Schuhkarton</caption>
</figure>
<figure id="schuhkarton">
<src>bilder/schuhkarton.jpg</src>
<caption>yyyyyyyyyyyy Ein Schuhkarton</caption>
</figure>
<text>...</text>
<figure id="schuhkarton">
<src>bilder/schuhkarton.jpg</src>
<caption>zzzzzzzzzzzz Ein Schuhkarton</caption>
</figure>
</content>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes" />
<xsl:variable name="figure-list">
<xsl:for-each select="//figure">
<tmp>
<caption><xsl:value-of select="caption" /></caption>
</tmp>
</xsl:for-each>
</xsl:variable>
<xsl:template match="/">
<abcd>
<xsl:value-of select="$figure-list/tmp[2]/caption" />
</abcd>
</xsl:template>
</xsl:stylesheet>
Ergebnis:
<abcd>xxxxx Ein Schuhkarton</abcd>
Grüße
Thomas