2012-02-08 118 views
1

我有一个SSIS XML任务,我正尝试将某些XML输出重新格式化为漂亮的HTML。这里是XMLSSIS XML XSLT转换任务

<RootNode><row><ProcessName>RefreshDbnSr1FromP01</ProcessName><StartDateAndTime>2011-09-21T15:13:56</StartDateAndTime><AverageSeconds>2562</AverageSeconds></row><row><ProcessName>RefreshDbnSr1FromP01</ProcessName><StartDateAndTime>2011-09-21T15:29:45</StartDateAndTime><AverageSeconds>2562</AverageSeconds></row><row><ProcessName>RefreshDbnSr1FromP01</ProcessName><StartDateAndTime>2011-09-21T15:44:07</StartDateAndTime><AverageSeconds>2562</AverageSeconds></row></RootNode> 

然后这里是我用来转换的XSLT。

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/RootNode"> 
    <html> 
     <body> 
     <table border="1"> 
      <tr bgcolor="#AAAAAA"> 
      <th>ProcessName</th> 
      <th>StartDateAndTime</th> 
      <th>AverageSeconds</th> 
      </tr> 
      <xsl:for-each select="row"> 
      <tr> 
       <td> 
       <xsl:value-of select="ProcessName" /> 
       </td> 
       <td> 
       <xsl:value-of select="StartDateAndTime" /> 
       </td> 
       <td> 
       <xsl:value-of select="AverageSeconds" /> 
       </td> 
      </tr> 
      </xsl:for-each> 
     </table> 
     </body> 
    </html> 
    </xsl:template> 
</xsl:stylesheet> 

它似乎在IE中正常工作。 (如果我添加它的工作头)。但是,XML任务导出的输出如下所示。

<?xml version="1.0" encoding="utf-8"?>RefreshDbnSr1FromP012011-09-21T15:13:562562RefreshDbnSr1FromP012011-09-21T15:29:452562RefreshDbnSr1FromP012011-09-21T15:44:072562 

任何帮助表示赞赏。

感谢,

+0

这看起来像从来没有XML任务看到你的样式表 – 2012-02-08 23:46:42

回答

2

尝试添加下面一行到你的XSLT元素前:

<xsl:output method="html" indent="yes"/> 

参见这篇博客的样本样式: http://geekswithblogs.net/LifeLongTechie/archive/2011/02/02/using-ssis-to-send-a-html-e-mail-message-with-built-in.aspx

+0

感谢您的链接。我最终使用了那里的指令,并将我的XML更改为PATH,ROOT。该示例中的xslt模式也更简单。添加xsl:输出似乎没有帮助。它现在像一个冠军。 – 2012-02-09 14:33:37