共用方式為


<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-setxsl:importxsl:includexsl:outputxsl:paramxsl:templatexsl:variablemsxsl: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>

請參閱

參考

<xsl:transform> 項目