XSLT current()-funktionen
Definition och användning
current()-funktionen returnerar en noduppsättning som endast innehåller den aktuella noden. Vanligtvis är den aktuella noden densamma som kontextnoden.
<xsl:value-of select="current()"/>
är lika med
<xsl:value-of select="."/>
Men, det finns en skillnad. Låt oss titta på följande XPath-uttryck: "catalog/cd". Uttrycket väljer den aktuella nodens <catalog>-undernod, och sedan väljer den <catalog>-nodens <cd>-undernod. Detta innebär att "." har ett annat betydelse i varje steg av beräkningen.
Nedanstående rad:
<xsl:apply-templates select="//cd[@title=current()/@ref]"/>
Det kommer att hantera alla cd-element där värdet för title-attributen är lika med värdet för ref-attributen för den aktuella noden.
Detta är annorlunda:
<xsl:apply-templates select="//cd[@title=./@ref]"/>
Detta hanterar alla cd-element som har samma värde för title- och ref-attributen.
Syntax
node-set current()
Exempel
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <html> <body> <xsl:for-each select="catalog/cd/artist"> Current node: <xsl:value-of select="current()"/> <br /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>