current-Funktion
Gibt eine Knotengruppe zurück, der der aktuelle Knoten als einziger Member angehört.
node-set current()
Hinweise
Die Funktion gibt eine Knotengruppe zurück, der der aktuelle Knoten als einziger Member angehört. Im Falle eines äußersten Ausdrucks (eines Ausdrucks, der nicht innerhalb eines anderen Ausdrucks vorkommt) stimmt der aktuelle Knoten stets mit dem Kontextknoten überein. Demnach sind
<xsl:value-of select="current()"/>
gleich
<xsl:value-of select="."/>
Innerhalb von eckigen Klammern unterscheidet sich der aktuelle Knoten jedoch normalerweise vom Kontextknoten. Beispiel:
<xsl:apply-templates select="//glossary/item[@name=current()/@ref]"/>
verarbeitet alle <item>-Elemente, die über ein übergeordnetes <glossary>-Element sowie über ein name-Attribut mit einem Wert verfügen, der mit dem Wert des ref-Attributs des aktuellen Knotens übereinstimmt. Dies unterscheidet sich von
<xsl:apply-templates select="//glossary/item[@name=./@ref]"/>
mit der gleichen Bedeutung wie
<xsl:apply-templates select="//glossary/item[@name=@ref]"/>
und verarbeitet demnach alle <item>-Elemente, die über ein übergeordnetes <glossary>-Element sowie über ein name-Attribut und ein ref-Attribut mit demselben Wert verfügen.
Beispiel
XML-Datei (current.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="current.xsl" ?>
<nodes>
<node>first</node>
<node>1</node>
<node>
<obj>class</obj>
</node>
</nodes>
XSLT-Datei (current.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="current()"/>
</xsl:template>
<xsl:template match="*">
<blockquote><xsl:apply-templates/></blockquote>
</xsl:template>
</xsl:stylesheet>
Ausgabe
Im Browser wird die folgende formatierte Ausgabe angezeigt.
first
1
class
Die Ausgabe des XSLT-Prozessors lautet wie folgt. Um diese Ausgabe zu erhalten, klicken Sie mit der rechten Maustaste auf den Browser, und wählen Sie das Menüelement zum Anzeigen der XSL-Ausgabe aus.
<?xml version="1.0" encoding="UTF-16"?>
<blockquote>
<blockquote>first</blockquote>
<blockquote>1</blockquote>
<blockquote>
<blockquote>class</blockquote>
</blockquote>
</blockquote>