我有xml源作为sql查询的结果,我在浏览器上显示所有xsl文件。在每个循环的内部我需要为每次迭代创建一个不同的变量,因为我必须将此变量传递给javascript函数进行详细说明,并将结果在带有ID的标记上推送html。我不知道如何为变量指定正确的名称。我写了这个没有用的东西:
<xsl:for-each select="Record">
<table id="tableId-{position()}">
<thead>
<tr>
<th>Testata 1</th>
<th>Testata 2</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<xsl:variable name="variableN">
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="testo" />
<xsl:with-param name="replace">'</xsl:with-param>
<xsl:with-param name="by">\'</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<script>
displayTableRowsDueColById('<xsl:value-of select="$variableN" />');
</script>
</xsl:if>
</xsl:for-each>
答案 0 :(得分:0)
您可以做的一件事是创建一个包含变量和调用javascript函数的模板。传递你需要的任何字符串替换全部。然后在脚本标记内调用模板,如下所示: (示例代码未经过测试。)
<xsl:for-each select="Record">
<table id="tableId-{position()}">
<thead>
<tr>
<th>Testata 1</th>
<th>Testata 2</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<script>
<xsl:call-template name="callDisplayTable">
<xsl:with-param name="text" select=" <Put some value here> "/>
</xsl:call-template>
</script>
</xsl:if>
</xsl:for-each>
<xsl:template name="callDisplayTable">
<xsl:param name="text"/>
<xsl:variable name="variableN">
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="$text" />
<xsl:with-param name="replace">'</xsl:with-param>
<xsl:with-param name="by">\'</xsl:with-param>
</xsl:call-template>
</xsl:variable>
displayTableRowsDueColById('<xsl:value-of select="$variableN" />');
</xsl:template>