<xsl:stylesheet> 項目
指定 XSLT 檔案的文件項目,其中包含所有其他的 XSLT 項目。
指定 XSLT 檔案的文件項目,其中包含所有其他的 XSLT 項目。此項目是 <xsl:transform> 項目的同義項目。
<xsl:stylesheet
id = id
extension-element-prefixes = NCNames
exclude-result-prefixes = NCNames
version = number>
</xsl:stylesheet>
屬性
id
有助於嵌入 XSLT 檔案的唯一識別項。extension-element-prefixes
要做為延伸命名空間使用的命名空間。此值是以泛空白字元分隔的命名空間前置詞清單。繫結至各個前置詞的命名空間,會被指定為延伸命名空間。預設命名空間 (如 xmlns 所宣告) 可指定為延伸命名空間,只要在命名空間前置詞清單中納入 #default 即可。在其根項目含有 extension-element-prefixes 的樣式表子樹狀目錄中,可將命名空間指定為延伸命名空間;以 <xsl:stylesheet> 項目做為根項目的子樹狀目錄,不含任何由該 <xsl:stylesheet> 項目的子系所匯入或包含的樣式表。exclude-result-prefixes
做為排除命名空間的命名空間統一資源識別元 (URI)。此值是以泛空白字元分隔的命名空間前置詞清單。繫結至各個前置詞的命名空間,會被指定為排除命名空間。預設命名空間 (如 xmlns 所宣告) 可指定為排除命名空間,只要在命名空間前置詞清單中納入 #default 即可。在其根項目含有 exclude-result-prefixes 的樣式表子樹狀目錄中,可將命名空間指定為排除命名空間;以 <xsl:stylesheet> 項目做為根項目的子樹狀目錄,不含任何由該 <xsl:stylesheet> 項目的子系所匯入或包含的樣式表。version
必要項。XSLT 檔案需要的 XSLT 版本。此版本的 XSLT 應將值設為 "1.0"。
項目資訊
發生次數 |
一次 |
父項目 |
(沒有父項目) |
項目子系 |
xsl:attribute-set、xsl:import、xsl:include、xsl:output、xsl:param、xsl:template、xsl:variable、msxsl:script |
備註
每個 XSTL 檔案都必須將 <xsl:stylesheet> 宣告為其文件項目。
樣式表可使用一系列的範本規則宣告 (<xsl:template>),以對資料集採用明確轉換。它可以使用 <xsl:include> 及 (或) <xsl:import> 以加入其他樣式表;如此可讓您重複使用經過測試的現有範本規則。樣式表也可以支援全域變數 (<xsl:param>) 與具名常數 (<xsl:variable>),以供所有轉換作業使用。<xsl:param> 項目可用來將參數傳遞至樣式表中。使用延伸項目 <msxsl:script> 後,樣式表甚至可以讓您實作自訂的函式,只是這種作法的效果通常不好。
下列範例將說明具有數個一般命名空間的 <xsl:stylesheet> 項目。
XSLT 樣式表至少必須宣告要進行 XSL 轉換的命名空間。在 MSXML 4.0 版或更新版本中,此命名空間必須以下列方式宣告:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
若會處理到其他命名空間的項目或資料型別,則樣式表必須同時宣告相關的命名空間。例如,下列 XSLT 樣式表在宣告時必須使用針對 Microsoft 擴充程式與 XSL Formatting Objects (XSL-FO) 定義的其他 XML 字彙。
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
範例
此範例說明含有一組範本的 XSLT 檔案。根範本 (match="/") 會定義整體輸出文件的結構,而其他範本則定義 <name>、<address> 與 <phone> 等項目的結構。此 HTML 輸出檔案是透過命令提示字元上的 msxml.exe 所產生的。
XML 檔 (customers.xml)
<?xml version='1.0'?>
<?xml-stylesheet type="text/xsl" href="customers.xsl"?>
<customers>
<customer>
<name>John Smith</name>
<address>123 Elm St.</address>
<phone>(123) 456-7890</phone>
</customer>
<customer>
<name>Mary Jones</name>
<address>456 Oak Ave.</address>
<phone>(156) 789-0123</phone>
</customer>
</customers>
XSLT 檔 (customers.xsl)
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<HTML>
<BODY>
<TABLE>
<xsl:for-each select="customers/customer">
<TR>
<xsl:apply-templates select="name" />
<xsl:apply-templates select="address" />
<xsl:apply-templates select="phone" />
</TR>
</xsl:for-each>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="name">
<TD STYLE="font-size:14pt font-family:serif">
<xsl:apply-templates />
</TD>
</xsl:template>
<xsl:template match="address">
<TD> <xsl:apply-templates /> </TD>
</xsl:template>
<xsl:template match="phone">
<TD> <xsl:apply-templates /> </TD>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select='.'/>
</xsl:template>
</xsl:stylesheet>
輸出
此為格式化輸出:
此為處理器輸出:
<HTML>
<BODY>
<TABLE>
<TR>
<TD STYLE="font-size:14pt font-family:serif">John Smith</TD>
<TD>123 Elm St.</TD>
<TD>(123) 456-7890</TD>
</TR>
<TR>
<TD STYLE="font-size:14pt font-family:serif">Mary Jones</TD>
<TD>456 Oak Ave.</TD>
<TD>(156) 789-0123</TD>
</TR>
</TABLE>
</BODY>
</HTML>