XSLT 1.0如何创建不同的变量内部foreach循环



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>

相关内容

  • 没有找到相关文章

最新更新