XSL节点总和

时间:2013-06-05 23:01:30

标签: xslt

我正在尝试计算某些节点的SUM。学习者将有一个或多个学习目标,我需要知道学习者学习目标的总体GLH节点。

以下是一些示例XML。

<Learner>
<LearnRefNumber>422</LearnRefNumber>        
<FamilyName>John</FamilyName>
<GivenNames>Smith</GivenNames>
<LearningDelivery>
    <LearnAimRef>zilsk14a</LearnAimRef>
    <AimType>4</AimType>
    <AimSeqNumber>1</AimSeqNumber>
    <GLH>2775</GLH>
</LearningDelivery>
<LearningDelivery>
    <LearnAimRef>zilsk14b</LearnAimRef>
    <AimType>4</AimType>
    <AimSeqNumber>2</AimSeqNumber>
    <GLH>2500</GLH>
</LearningDelivery>
</Learner>

这是我的XSL。学习目标的计数工作正常,但我正在努力完善GLH。

<xsl:for-each select="t:Learner">
<div class="learner">              
    <xsl:variable name="LearningAims" select="count(t:LearningDelivery)" />
    <xsl:variable name="LearnerGLH" select="sum(t:LearningDelivery/GLH)" />

    <table>
        <tr>
          <th>Learner Ref</th>
          <th>Learning Aims</th>
          <th>Total GLH</th>
        </tr>

        <tr>
          <td>
            <xsl:value-of select="t:LearnRefNumber" />
          </td>

          <td>
            <xsl:value-of select="$LearningAims" />
          </td>

          <td>
            <xsl:value-of select="$LearnerGLH" />
          </td>
        </tr>
    </table>
</div>

请帮忙。非常感谢

1 个答案:

答案 0 :(得分:0)

您正在编写sum(t:LearningDelivery/GLH),但在输入XML中,LearningDelivery和GLH元素位于同一名称空间中。你想要sum(t:LearningDelivery/t:GLH)