Функция current() в XSLT
Определение и использование
Функция current() возвращает узел, содержащий только текущий узел. Обычно текущий узел совпадает с контекстным узлом.
<xsl:value-of select="current()"/>
равно
<xsl:value-of select="."/>
Но есть одно отличие. Давайте посмотрим на следующий XPath-выражение: "catalog/cd". Это выражение выбирает подузел <catalog> текущего узла, а затем выбирает подузел <cd> узла <catalog>. Это означает, что в каждом шаге вычисления "." имеет разное значение.
Ниже приведена эта строка:
<xsl:apply-templates select="//cd[@title=current()/@ref]"/>
Обрабатывает все элементы cd с атрибутом title, значение которого равно значению атрибута ref текущего узла.
В отличие от этого:
<xsl:apply-templates select="//cd[@title=./@ref]"/>
Эта функция обрабатывает все элементы cd с атрибутами title и ref, имеющими одинаковые значения.
грамматика
node-set current()
пример
<?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"> Текущий узел: <xsl:value-of select="}}current()"/> <br /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>