<xsl:element> 元素

创建指定名称的输出元素。

<xsl:element
  name = "element-name"
  namespace = "uri-reference"
  use-attribute-sets = QName
</xsl:element>

特性

  • name
    必选。 要创建的元素的名称。 如果此值为限定名,元素节点将在当前绑定到前缀上的命名空间中创建,除非 namespace 属性重写此值。 name 属性的值解释为一个属性值模板 — 即计算大括号中的表达式并转换为字符串,与 <xsl:value-of> 中相同。 这样,可以从源 XML 计算或获取元素名称。
  • 命名空间
    所创建元素的命名空间 URI。 如果 name 属性包含 QName,指定的前缀将绑定到 namespace 属性所指定的命名空间上。 在序列化时,这样可能需要更多的命名空间声明。 namespace 值解释为属性值模板。
  • use-attribute-sets
    通过空白分隔的属性集列表,按照限定名 的指定。 指定此属性将在每个列出的属性集中声明每个属性。

元素信息

出现次数

无限制

父元素

xsl:copy、xsl:element、xsl:fallbackxsl:for-eachxsl:ifxsl:messagexsl:otherwisexsl:paramxsl:templatexsl:variablexsl:whenxsl:with-param、输出元素

子元素

xsl:apply-templatesxsl:attributexsl:call-templatexsl:choosexsl:commentxsl:copyxsl:copy-of、xsl:element、xsl:for-eachxsl:ifxsl:processing-instructionxsl:textxsl:value-ofxsl:variable、输出元素

备注

<xsl:element> 元素使元素可以使用计算的名称创建。 要创建的元素的名称由必选的 name 属性和可选的 namespace 属性指定。 <xsl:element> 元素的内容是所创建元素的属性和子级的模板。

此元素为在命名空间冲突的情况下创建元素提供转义机制,例如 XSLT 本身。

示例

<xsl:element> 元素是必要的,因为 XSLT 元素不能用作输出元素。 该示例说明如何输出 <xsl:template> 元素。

XML 文件 (item.xml)

XSLT 文件 (element.xsl)

输出

以下是格式化输出:

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>