Thomas J.S.: Nodes (per XPath) in Variable

Beitrag lesen

Hallo,

Anscheinend habe ich mich sehr zweideutig ausgedrückt

Ja.

----------------------
<xsl:variable name="links">
    <li><a href="index.xhtml">Index</a></li>
    <li><a href="description.xhtml">Description</a></li>
</xsl:variable>
<ul>
    <xsl:for-each select="$links/li">
        <li>
            <xsl:if test="document/meta/section = .">
                <xsl:attribute name="class">active</xsl:attribute>
            </xsl:if>
            <xsl:apply-templates />
        </li>
    </xsl:for-each>
</ul>
-----------------------

Kann nicht gehen weil:
<xsl:for-each select="$links/li"> zu <xsl:if test="document/meta/section = .">
nichts ergibt.
In $links/li hast du noch ein <a> und deshalb kann <xsl:if test="document/meta/section = ."> nie zustandekommen.

Willst darauf zugreifen wäre natürlich ein
<xsl:for-each select="document()//xsl:variable[@name = 'links']/li"> möglich.

Aber ich würde an deiner Stelle einfach einen Template schreiben und die Klasse dann mit with-param bestimmen.

Grüße
Thomas