2012-02-08 164 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