创建指定名称的输出元素。
<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:element> 元素使元素可以使用计算的名称创建。要创建的元素的名称由必选的 name 属性和可选的 namespace 属性指定。<xsl:element> 元素的内容是所创建元素的属性和子级的模板。
此元素为在命名空间冲突的情况下创建元素提供转义机制,例如 XSLT 本身。
<xsl:element> 元素是必要的,因为 XSLT 元素不能用作输出元素。该示例说明如何输出 <xsl:template> 元素。
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="element.xsl" ?>
<root>
<item>My Item</item>
</root>
<?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>
以下是格式化输出:
以下是处理器输出,为了清楚起见,增加了分行符。
<?xml version="1.0"?>
<xsl:template match="cost"
xml:space="preserve"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
My Item</xsl:template>