对 XML 输出应用转换
更新日期: 2006 年 12 月 12 日
您可以使用 XML 呈现扩展插件生成 XML 文件,这些文件是在运行时报表导出操作过程中创建的。生成的 XML 文件随后可以通过 XSL 转换 (XSLT) 转换为几乎任意格式的文件。您可以使用 XML 呈现扩展插件和 XSLT 生成现有呈现扩展插件不支持的格式。
通常有三种情况需要使用 XSLT:
- 数据传输 您可以将 Reporting Services 的 XML 输出转换为其他应用程序可以读取的另一种 XML 格式。
- 文本呈现 您可以将 XML 报表转换为纯文本文件。根据报表数据,您可能会发现特殊字符(如“and”字符)将以 HTML 编码格式呈现(例如,&)。若要避免对特殊字符进行 HTML 编码,请向 XSLT 文件添加以下方法属性:
<xsl:output method="text" encoding="utf-8" media-type="text/plain"/>
。 - HTML 呈现 您可以基于 XML 报表创建 HTML 或其他格式文档。
XML 呈现扩展插件生成的 XML 格式专用于报表。因此,您编写的 XSL 转换只能专用于报表。
注意: |
---|
出于安全原因,Reporting Services 不支持使用嵌入式 Microsoft Visual Basic 代码编写的 XSL 转换。 |
示例
如果将下面的 XSL 代码保存为文件并上载到报表服务器,则可以用来将 Product Catalog 示例报表转换为纯文本格式的产品型号列表:
<?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>
</xsl:text>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="Report">
<xsl:for-each select="ProductTable/ProductTable_Group1_Collection/ProductTable_Group1">
<xsl:text>
</xsl:text>
<xsl:value-of select="@Category"/>
<xsl:for-each select="ProductTable_Group2_Collection/ProductTable_Group2">
<xsl:text>
 </xsl:text>
<xsl:value-of select="@SubCategory"/>
<xsl:for-each select="ProductTable_Group3_Collection/ProductTable_Group3">
<xsl:text>
 </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 这一名称,而且在报表服务器上与 Product Catalog 报表存储在同一文件夹中:
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 来使用 XSL 转换 XML 报表。您还可以在报表服务器中检索 XML,使用自己的应用程序应用 XSLT。
注意: |
---|
此示例中所使用的 XSL 文件专用于 Product Catalog 示例报表。如果使用其他报表或 Product Catalog 报表已经更改,则可能无法正确转换该文件。 |
请参阅
概念
导出报表
为 XML 数据定义报表数据集
针对 XML 输出进行设计
其他资源
Using a URL to Access Report Server Items
AdventureWorks 报表示例
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 12 月 12 日 |
|
2005 年 12 月 5 日 |
|