总结一个列表xml

时间:2017-12-14 19:10:18

标签: xslt html-table sum

我是xsl的新手。 我试图将表的所有价格加起来并将总和放在一个新行中。 但是当我运行它时,我只得到一个值。无法理解原因。 任何想法?

<xsl:for-each select="Album[count(. | key('albums-by-country', Country)[1]) = 1]">
        <xsl:sort select="Country" />
        <h4 style="color:green;"><xsl:value-of select="Country" style="color:red;" /><br /></h4>


                  <table border="1">
    <tr bgcolor="#979994">
      <th style="text-align:left">Price</th>
      <th style="text-align:left">Link</th>
      <th style="text-align:left">Company</th>
      <th style="text-align:left">Name</th>
      <th style="text-align:left">Date</th>
      <th style="text-align:left">Artist</th>
    </tr>
    <xsl:for-each select="key('albums-by-country', Country)"> 
<xsl:sort select="Date" />
   <tr>
      <td><xsl:value-of select="Price"/></td>
          <xsl:variable name="PriceBase" select="Price" />
    <xsl:variable name="calculatedTotal" select="Album/total/score" />
    <xsl:variable name="calculatedTotal" select="$PriceBase + $calculatedTotal" />
      <td><xsl:value-of select="Link"/></td>
      <td><xsl:value-of select="Company"/></td>
      <td><xsl:value-of select="Name"/></td>
      <xsl:choose>
      <xsl:when test="string-length(Date)>4">
      <td><xsl:value-of select="concat(substring(Date,5,2),'/',substring(Date,7,8),'/',substring(Date,1,4))"/></td>
</xsl:when>
<xsl:otherwise>
 <td><xsl:value-of select="concat('01/01/',substring(Date,1,4))"/></td>
</xsl:otherwise>
</xsl:choose>
      <td style="color:red;"><xsl:value-of select="Artist"/></td>
    </tr>
    </xsl:for-each>
      <tr>

                <td colspan="2">Total Amount</td>
                <td bgcolor="#ffff00"><xsl:value-of select="sum(Album/Price)"/></td>
            </tr>
  </table>

1 个答案:

答案 0 :(得分:0)

尝试将foo = function(...){ length(unique(lengths(list(...)))) == 1 } foo(a, b, c) #[1] FALSE 更改为<xsl:value-of select="sum(Album/Price)"/>是否修复了它。