如果通过集合将.xml文件拉入.xsl样式表中,如何计算值的总和?
我有一个.tcx文件列表,我使用集合将其拉入样式表中如果通过集合将.xml文件拉入.xsl样式表中,如何计算值的总和?,xml,xslt,collections,Xml,Xslt,Collections,我有一个.tcx文件列表,我使用集合将其拉入样式表中 <xsl:template name="main"> <tbody> <xsl:apply-templates select="collection('file:///d:/in/?select=*.tcx')"/> </tbody> </xsl:template> 现在我有了一个处理这些.xml文件内容的模板 <xsl:template ma
<xsl:template name="main">
<tbody>
<xsl:apply-templates select="collection('file:///d:/in/?select=*.tcx')"/>
</tbody>
</xsl:template>
现在我有了一个处理这些.xml文件内容的模板
<xsl:template match="/garmin:TrainingCenterDatabase">
<xsl:for-each select="./garmin:Activities/garmin:Activity">
<xsl:for-each select="./garmin:Lap">
<tr>
<td><xsl:value-of select="tokenize(base-uri(.),'\.')[2]" /></td>
<td><xsl:value-of select="@StartTime" /></td>
<td><xsl:value-of select="garmin:TotalTimeSeconds" /></td>
<td><xsl:value-of select="garmin:DistanceMeters" /> m</td>
<td><xsl:value-of select="garmin:Calories" /></td>
<xsl:call-template name="sum">
<xsl:with-param name="elements-to-sum" select="//garmin:DistanceMeters" />
</xsl:call-template>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
M
正如你所看到的,我有一个求和模板(它递归调用自己来求所有距离表的和),我试图计算所有距离表的滚动求和,但它没有以我期望的方式工作。我分别获取集合中的所有元素,并使用每个新元素重新开始求和
有没有一种方法可以在整个集合中计算这些滚动总和(或者像序列号这样的东西,我可以用它来对结果进行编号 考虑声明一个全局参数或
,然后,在需要时,您可以轻松地计算
。然后还可以将
更改为使用变量
谢谢!简单一点:如果我通过新引入的变量引用此集合,这是否意味着样式表处理程序将一次又一次地重新扫描所有文档?如果使用全局变量,然后在需要处理集合的所有位置引用它,那么据我所知,处理程序会一次又一次地读取所有文件使用它曾经构建过的树的序列。