Функция current
Возвращает набор узлов, в котором текущий узел является единственным членом.
node-set current()
Замечания
Эта функция возвращает набор узлов, единственным элементом которого является текущий узел. Для самого внешнего выражения — выражения, не встречающегося внутри другого выражения, — текущий узел всегда идентичен узлу контекста. Таким образом, выражение
<xsl:value-of select="current()"/>
идентично выражению
<xsl:value-of select="."/>
Однако, внутри квадратных скобок текущий узел обычно отличается от узла контекста. Например,
<xsl:apply-templates select="//glossary/item[@name=current()/@ref]"/>
обрабатывает все элементы <item>
с родительским элементом <glossary>
и атрибутом name
со значением, равным значению атрибута ref
текущего узла. В этом состоит его отличие от выражения
<xsl:apply-templates select="//glossary/item[@name=./@ref]"/>
со значением, идентичным значению выражения
<xsl:apply-templates select="//glossary/item[@name=@ref]"/>
которое будет подвергать обработке все элементы <item>
, содержащие родительский элемент <glossary>
, а также атрибуты name
и ref
с идентичными значениями.
Пример
XML-файл (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 XML (current.xsl)
Вывод
Ниже приводятся отображаемые в обозревателе отформатированные выходные данные.
first
1
class
Ниже приводятся выходные данные из процессора XSLT. Для получения этих данных щелкните в обозревателе правой кнопкой мыши и выберите пункт меню Просмотр выходных данных XSL.