Вам лучше использовать exslt:node-set()
из http://exslt.org/common, чем конкретная реализация процессора, являющаяся EXSLT гораздо более переносимой на различных процессорах.В этом случае вам нужно:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exslt="http://exslt.org/common"
extension-element-prefixes="exslt">
<!-- staff -->
</xsl:stylesheet>
Например, в Saxon 6.5 вы можете использовать его следующим образом:
<total>
<xsl:variable name="myTotal" select="exslt:node-set($flipMachineTimes)"/>
<xsl:value-of select="sum($myTotal/FlipMachineTime)"/>
</total>
Если вы установите таблицу стилейверсия до 1.1, это проще (как и должно быть):
<total>
<xsl:value-of select="sum(exslt:node-set($flipMachineTimes/FlipMachineTime))"/>
</total>
После просмотра вашей сути, я думаю, вы работаете над чем-то огромным и сложным, что не может быть решено здесь простым вопросом,Может быть слишком много деталей, которые вы могли бы пропустить.Однако, если это просто случай отображения значения (где ???), я могу предложить эту последнюю вещь.
Попробуйте создать переменную для каждой ячейки:
<Cell>
<xsl:attribute name="ExternalId">
<xsl:value-of select="@ExternalId"/>
</xsl:attribute>
<!-- calculated.-->
<FlipMaschinenlaufzeit>
<xsl:choose>
<xsl:when test="./FlipPlanbelegungszeit > 0">
<xsl:value-of select="$planbelegungszeit - (($planbelegungszeit * ($organisatorischeAusfallzeit div 100)) + ($planbelegungszeit * ($stoerungsbedingteUnterbrechungen div 100)) + ($planbelegungszeit * ($nebenzeit div 100)))"/>
</xsl:when>
<xsl:otherwise>0</xsl:otherwise>
</xsl:choose>
</FlipMaschinenlaufzeit>
</Cell>
<xsl:varible name="a">
<!-- paste here the code of xsl:choose inside the cell -->
</xsl:variable>
<!-- create other variables for each cell in the same way (use different names, like b, c ..) -->
<!-- after the last cell, display the sum -->
<xsl:value-of select="$a + $b + $c + ..."/>