0
我有一個帶分隔符的文本,我想用XSLT 2.0(撒克遜)格式化爲HTML表格。文本blob(在本例中爲參數myTable)包含以| c |分隔的記錄。在第6條記錄後,它應該成爲一個新的行。還有一個| r |我可以使用分隔符。XSLT 2.0 - For-Each-Group與Tokenize
所以我想我會用記號化在列分隔符,將HTML標籤欄,然後使用換各組將HTML行標籤。但是,直到現在,只寫了相當簡單的XSLT,我正在努力正確使用。
當使用下面的XML時,我得到一個錯誤,說明for-each-group必須是node()類型,而不是xs:string,這是tokenize生成的。
我懷疑我以一種根本錯誤的方式接近這一點,但我堅持使用XSLT和這個傳入的blob。任何建議感激!
<xsl:param name="myTable" />
<xsl:param name="tdSeparator" select="'\|c\|'"/>
<xsl:param name="trSeparator" select="'\|r\|'"/>
<xsl:template name="makeTable">
<xsl:for-each-group select="fn:tokenize($myTable,$tdSeparator)" group-ending-with="*[position() mod 6 = 0]">
<tr>
<xsl:for-each select="current-group()">
<td><xsl:copy-of select="current()" /></td>
</xsl:for-each>
</tr>
</xsl:for-each-group>
</xsl:template>
<xsl:template match="xvar:metric1" xmlns:xvar="http://test.com/xvar/example">
<root>
<html>
<HEAD>
<META content="text/html; charset=us-ascii" />
</HEAD>
<body>
<p><strong>EMAIL HEADER</strong></p>
<p><strong>Key0: </strong> <xsl:value-of select="xvar:key0" /></p>
<p><strong>Value1: </strong> <xsl:value-of select="xvar:value1" /></p>
etc...
<table>
<xsl:call-template name="makeTable" />
</table>
輝煌 - 這工作非常好,謝謝! –