Элемент <xsl:value-of>
Вставляет значение выбранного узла в виде текста.
<xsl:value-of
select = Expression
disable-output-escaping = "yes" | "no"
</xsl:value-of>
Атрибуты
select
Обязательный. Выражение Выражения (XSLT) вычисляется в соответствии с текущим контекстом. Результаты преобразуются в строку, как если бы вызывалась функция string(). Набор узлов преобразуется в строку вставкой строкового значения первого узла множества.disable-output-escaping
Значение по умолчанию - "no". Если указано значение "yes", текстовый узел, сформированный элементом <xsl:value-of>, будет выведен без escape-символов.. Например, выражение "<" сформирует единственный символ.<xsl:value-of disable-output-escaping="yes" select="string('<')"/>
Примечание
Элемент disable-output-escaping="yes" может привести к формированию документов в неправильном формате и поэтому должен применяться с осторожностью.Неправильный формат вывода в определенных обстоятельствах может приводить к появлению ошибок.Например, вывод с помощью метода transformNodeToObject в XML-документ требует, чтобы результат был хорошо сформирован, и поэтому может не завершиться, если атрибут disable-output-escaping повлиял на сформированность документа.Рассматривайте disable-output-escaping="yes" как расширенную функцию, применять которую можно, только хорошо понимая потенциальную опасность.
Сведения об элементе
Количество вхождений |
Без ограничений |
Родительские элементы |
xsl:attribute, xsl:comment, xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:processing-instruction, xsl:template, xsl:variable, xsl:when, xsl:with-param, элементы вывода |
Дочерние элементы |
(Нет дочерних элементов) |
Заметки
Элемент <xsl:value-of> вставляет текстовую строку, представляющую значение первого элемента (в порядке появления в документе), заданного атрибутом select.
Если выражение языка XPath возвращает несколько узлов, элемент <xsl:value-of> возвращает текст первого возвращенного узла (эквивалентно методу selectSingleNode объекта XMLDOMNode). Если возвращенный узел представляет собой элемент с внутренней структурой, элемент <xsl:value-of> возвращает сцепленные текстовые узлы поддерева элемента после удаления разметки.
Пример
Приведенный далее файл XSLT создает элемент <p> из элемента <person> с дочерними элементами <given-name> и <family-name>. Элемент <p> будет содержать строковое значение первого дочернего элемента <given-name> текущего узла, за которым будет следовать пробел и строковое значение первого дочернего элемента <family-name> текущего узла.
XML-файл (family.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="family.xsl"?>
<family>
<person>
<given-name age="10">Fred</given-name>
<family-name>Smith</family-name>
</person>
<person>
<given-name age="13">Jill</given-name>
<family-name>Jones</family-name>
</person>
</family>
XSLT-файл (family.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="person">
<p>
<xsl:value-of select="given-name"/>
<xsl:text> </xsl:text>
<xsl:value-of select="family-name"/>
</p>
</xsl:template>
</xsl:stylesheet>
Вывод
Далее приведен форматированный вывод.
Fred Smith
Jill Jones
Далее приведен вывод обработчика.
<?xml version="1.0" encoding="UTF-16"?>
<p>Fred Smith</p>
<p>Jill Jones</p>