共用方式為


套用轉換至 XML 輸出

更新: 2006 年 12 月 12 日

您可以利用 XML 轉譯延伸模組,來產生在執行階段進行報表匯出作業期間建立的 XML 檔案。在後續作業中,您幾乎可以利用 XSL 轉換 (XSLT) 將所產生的 XML 檔轉換成任何格式。您可以使用 XML 轉譯延伸模組和 XSLT,來產生現有轉譯延伸模組不支援的格式。

有三種使用 XSLT 的常見狀況:

  • 資料傳輸 您可以將 Reporting Services 的 XML 輸出轉換成可由其他應用程式讀取的另一種 XML 格式。
  • 文字轉譯 您可以將 XML 報表轉換為純文字檔。在某些報表資料中,您也許會發現特殊字元 (例如,連字號字元) 是利用 HTML 編碼格式 (例如 &) 來轉譯的。若要避免特殊字元的 HTML 編碼,請將下列方法屬性加入 XSLT 檔中:<xsl:output method="text" encoding="utf-8" media-type="text/plain"/>
  • HTML 轉譯 您可以從 XML 報表建立 HTML 或其他文件。

XML 轉譯延伸模組所產生的 XML 是針對該報表所產生。因此,您撰寫的 XSL 轉換必須是針對該報表所寫。

ms159716.note(zh-tw,SQL.90).gif附註:
基於安全性考量,Reporting Services 並不支援具有內嵌 Microsoft Visual Basic 程式碼的 XSL 轉換。

範例

將下列 XSL 儲存成檔案並上載至報表伺服器時,可用來將「產品目錄」範例報表轉換為純文字的產品模型清單。

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:output method="text" encoding="utf-8" media-type="text/plain"/>
<xsl:strip-space elements="*"/> 

<xsl:template match="/">
  <xsl:text>Product Models</xsl:text>
  <xsl:text>&#xD;&#xA;</xsl:text>
  <xsl:apply-templates/>
</xsl:template>

<xsl:template match="Report">
  <xsl:for-each select="ProductTable/ProductTable_Group1_Collection/ProductTable_Group1">
    <xsl:text>&#xD;&#xA;</xsl:text>
    <xsl:value-of select="@Category"/>
    <xsl:for-each select="ProductTable_Group2_Collection/ProductTable_Group2">
      <xsl:text>&#xD;&#xA;    </xsl:text>
      <xsl:value-of select="@SubCategory"/>
      <xsl:for-each select="ProductTable_Group3_Collection/ProductTable_Group3">
        <xsl:text>&#xD;&#xA;        </xsl:text>
        <xsl:value-of select="@Model"/>
      </xsl:for-each>
    </xsl:for-each>
  </xsl:for-each>
  <xsl:apply-templates/>
</xsl:template>

</xsl:stylesheet>

若要轉換範例報表,您可以使用執行報表之 URL 中的裝置資訊設定。例如,下列 URL 執行報表、套用轉換,並輸出具有副檔名 .txt 的檔案。此範例假設上述範例的 XSL 是以 ProductModels.xsl 的名稱,與報表伺服器上的「產品目錄」報表儲存在相同的資料夾。

https://localhost/reportserver?/AdventureWorks%20Sample%20Reports/Product+Catalog&rs:Command=Render&rs:Format=XML&rc:OmitSchema=True&rc:FileExtension=txt&rc:XSLT=ProductModels.xsl

不一定要使用 Reporting Services 才能轉換使用 XSLT 的 XML 報表。您也可以從報表伺服器擷取 XML,並利用自己的應用程式來套用 XSLT。

ms159716.note(zh-tw,SQL.90).gif附註:
這個範例中所使用的 XSL 檔案是「產品目錄」範例報表特定的。如果使用不同的報表,或改變「產品目錄」報表,則可能無法正確地轉換檔案。

請參閱

概念

匯出報表
定義 XML 資料的報表資料集
針對 XML 輸出的設計

其他資源

Using a URL to Access Report Server Items
AdventureWorks 報表範例

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

變更的內容:
  • 更正 xml 轉譯命令中的預設範例路徑。

2005 年 12 月 5 日

新增內容:
  • 文字轉譯警告。