Xml 在XSLT中的脚本标记内使用position函数

Xml 在XSLT中的脚本标记内使用position函数,xml,xslt,Xml,Xslt,以下是完整的代码: <xsl:for-each select="/*/hundreds/hundred"> <div class="page_spacer" /> <div class="page_section" style="{./style}"> <h2><xsl:value-of select="./label"/></h2> <div id="graphDiv{position()}"></div

以下是完整的代码:

<xsl:for-each select="/*/hundreds/hundred">
<div class="page_spacer" />
<div class="page_section" style="{./style}">
<h2><xsl:value-of select="./label"/></h2>
<div id="graphDiv{position()}"></div>
<script>
var ctx = createCanvas("graphDiv{position()}");
var graph = new BarGraph(ctx);
graph.maxValue = 30;
graph.margin = 2;
graph.colors = ["#49a0d8", "#d353a0", "#ffc527", "#df4c27"];
graph.xAxisLabelArr = ["North", "East", "West", "South"];
setInterval(function () {
    graph.update([Math.random() * 30, Math.random() * 30, Math.random() * 30, Math.random() * 30]);
}, 1000);   
</script>
<xsl:value-of select="./descriptiontext" />
<button onclick="javascript:window.location.href='{./viewalllink}'"><xsl:value-of select="./viewalllabel" /></button>
<br/>
<xsl:for-each select="./contendors/contendor">
    <a href="/location/{./locid}" ><img class="locationthumb" src="/act/locationthumb/{./locid}"/></a>
</xsl:for-each>
</div>
</xsl:for-each>

此链接将帮助您:

然而

<xsl:value-of select="value"/>

您需要执行以下操作:

<xsl:value-of select ="position()"/>

当您创建前面的
div
元素时,您正在这样做(这很好):


乍一看,它可能看起来“奇怪”,但请记住XSLT对javascript没有任何理解。就XSLT而言,它只是一段文本。您正在输出一个名为
script
的元素,该元素的子节点是文本节点,并且包含
position()
的值作为该文本的一部分。

能否提供您的源xml?
<xsl:value-of select="value"/>
<xsl:value-of select ="position()"/>
 <div id="graphDiv{position()}"></div>
    <script>
    var ctx = createCanvas("graphDiv<xsl:value-of select="position()" />");
    var graph = new BarGraph(ctx);