xsl将span的动态id添加到for中

时间:2011-08-08 20:45:16

标签: xslt

我从我的xsl生成html并且我想为标签生成一个唯一的id,这是为了在需要此id的xsl内调用js中的函数... 这是我的xsl

的简化示例
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"             xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:template match="/">
      <xsl:for-each select="data/item">
        <xsl:sort select="position()" data-type="number" order="descending"/>
             <span id="spanDescription"/>
      </xsl:for-each>
    </div>
  </xsl:template>
</xsl:stylesheet>

2 个答案:

答案 0 :(得分:1)

您可以使用generate-id()功能:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"             xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:template match="/">
      <xsl:for-each select="data/item">
        <xsl:sort select="position()" data-type="number" order="descending"/>
             <span id="{generate-id()}"/>
      </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

答案 1 :(得分:0)

使用变量和concat()

    <xsl:variable name="id" select="generate-id()"/>
    <span id="{$id}"/>
    <script type="text/javascript">
     <xsl:value-of select="concat('replaceAll(',$id,');')"/>
    </script>