Элемент <xsl:element>
Создает выходной элемент с указанным именем.
<xsl:element
name = "element-name"
namespace = "uri-reference"
use-attribute-sets = QName
</xsl:element>
Атрибуты
- name
Обязательный. Имя создаваемого элемента. Если это значение является именем Полные имена, то узел элемента создается в пространстве имен, которое в данный момент связано с этим префиксом, если иное не определено атрибутомnamespace
. Значение атрибутаname
интерпретируется как шаблон значения атрибута, иными словами, выражения в фигурных скобках вычисляются и преобразуются в строки, как в элементе <xsl:value-of>. Это позволяет вычислить или получить из исходного кода XML имя элемента.
- namespace
URI-код пространства имен созданного элемента. Если атрибутname
содержит имя QName, то указанный там префикс будет привязан к пространству имен, заданному атрибутомnamespace
. В этом случае при сериализации, возможно, потребуется объявлять дополнительные пространства имен. Значениеnamespace
интерпретируется как шаблон значения атрибута.
- use-attribute-sets
Разделенный пробелами список наборов атрибутов, заданный как Полные имена. Указание этого атрибута объявляет каждый атрибут в каждом перечисленном наборе атрибутов.
Сведения об элементе
Количество вхождений |
Без ограничений |
Родительские элементы |
xsl:copy, xsl:element, xsl:fallback, xsl:for-each, xsl:if, xsl:message, xsl:otherwise, xsl:param, xsl:template, xsl:variable, xsl:when, xsl:with-param, элементы вывода |
Дочерние элементы |
xsl:apply-templates, xsl:attribute, xsl:call-template, xsl:choose, xsl:comment, xsl:copy, xsl:copy-of, xsl:element, xsl:for-each, xsl:if, xsl:processing-instruction, xsl:text, xsl:value-of, xsl:variable, выходные элементы |
Замечания
Элемент <xsl:element>
позволяет присвоить создаваемому элементу вычисляемое имя. Имя создаваемого элемента задается обязательным атрибутом name
и необязательным атрибутом namespace
. Содержимое элемента <xsl:element>
является шаблоном для атрибутов и дочерних элементов создаваемого элемента.
Этот элемент обеспечивает механизм экранирования, который позволяет создавать элементы, конфликтующие с пространств имен, например элементы XSLT.
Примеры
Элемент <xsl:element>
обязателен, поскольку элементы XSLT нельзя использовать в качестве выходных элементов. В данном примере показано, как вывести элемент <xsl:template>
.
XML-файл (item.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="element.xsl" ?>
<root>
<item>My Item</item>
</root>
XSLT-файл (element.xslt)
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="item">
<xsl:element name="xsl:template">
<xsl:attribute name="match">cost</xsl:attribute>
<xsl:attribute name="xml:space">preserve</xsl:attribute>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Вывод
Далее приведен форматированный вывод.
My Item
Далее приведен вывод обработчика. Переводы строк добавлены для наглядности.
<?xml version="1.0"?>
<xsl:template match="cost"
xml:space="preserve"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
My Item</xsl:template>