Элемент <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>