Hallo Thomas,
<xsl:if test="document/meta/section = .">
Hier ist dokument ein Element.
Du brauchst aber die Funktion:<xsl:if test="document()/.../
Sorry, Wieso eine Funktion? Der obige Test stimmt -- und funktioniert so auch. Ich will tatsächlich auf das Element document/meta/section zugreifen.
Es müsste also, wenn du auf das XSL zugreifen willst in etwas so aussehen:
<xsl:if test="document()/xsl:stylesheet/xsl:wasauchimmer">
Anscheinend habe ich mich sehr zweideutig ausgedrückt ... der Pfad in "if" ist OK und bezieht sich aufs XML.
Was sich aufs XSL bezieht, ist der Pfad der for-each-Enumeration (hatte ich eigentlich auch so geschrieben ...).
Ich habe trotzdem das Gefühl, dass dies nicht das ist was du eigentlich suchst, aber deine Informationen sind zu mehr nicht ausreichend.
Hmm, ich versuch's mal andersherum:
Das XML sieht schematisch so aus:
<document>
<meta>
<section>sektion</section>
</meta>
<data>
<!-- hier befindet sich XHTML-Markup-Code -->
</data>
</document>
Ich brauche nun im Prinzip folgendes im XSLT (Menüstruktur für die Seite):
\\
<xsl:variable name="index">index</xsl:variable>
<xsl:variable name="description">description</xsl:variable>
<!-- ... und so weiter, für fünf oder sechs Elemente -->
<ul>
<li>
<xsl:if test="document/meta/section = $index">
<xsl:attribute name="class">active</xsl:attribute>
</xsl:if>
<a href="index.html">Index</a>
</li>
<li>
<xsl:if test="document/meta/section = $description">
<xsl:attribute name="class">active</xsl:attribute>
</xsl:if>
<a href="description.html">Description</a>
</li>
<!-- ... und so weiter, für fünf oder sechs Elemente -->
</ul>
///
D.h. es soll eine Liste erstellt werden und je nach dem Wert des Elements "document/meta/section" soll eines der Items mit dem Attribut {class="active"} versehen werden. Und da ich faul bin, will ich nicht für jedes Element einen solchen Code einfügen, sondern dachte, ich könne das eventuell mit einem for-each-Knoten erreichen, indem ich alle Elemente in eine Variable packe. Klappte ja nun nicht. Gibt es da eine andere Möglichkeit, den obigen Code ein wenig zu "elegantisieren"?
Ok, man könnte "choose" statt "if" verwenden, aber wirklich besser wird's dadurch nicht.
Gruß,
KonRad -
"Was Gott zusammengeführt hat ..." :: polithink.org -
the politicultural e-zine :: http://www.polithink.org