i具有SQL查询的结果,我的XML源,我在浏览器上使用XSL文件显示全部。在每个循环的A内部,我需要为每次迭代创建一个不同的变量,因为我必须将此变量传递给JavaScript函数才能详细阐述,并且结果将HTML推到带有ID的标签上。我不知道如何为变量分配正确的名称。我写了这本不起作用的书:
<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>
您可以做的一件事是创建一个包含变量和调用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>