<xsl:element> 項目
使用指定名稱建立輸出項目。
<xsl:element
name = "element-name"
namespace = "uri-reference"
use-attribute-sets = QName
</xsl:element>
屬性
name
必要項。要建立的項目名稱。如果這個值是 限定名稱,則除非它會由 namespace 屬性覆寫,否則會在目前繫結至前置詞的命名空間中建立項目節點。XML 會將 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.xsl)
<?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>