ThomasM: XSLT 1.0 Sum

Beitrag lesen

Hallo Julian,

Die Summe wird nicht von den einzelnen "Codes" berechnet und mir wird auch nur ein "Code" anstatt beider ("DI" und "FI") ausgegeben.

Gruppierung an sich passt, die Anwendung eher so:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

  <xsl:key name="AllowanceOrCharge_Header_002" match="AllowanceOrCharge_Header_002" use="Code"/>

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="AllowanceOrCharge_Header_002">
    <xsl:for-each select="current()[generate-id() = generate-id(key('AllowanceOrCharge_Header_002', Code)[1])]">
      <AllowanceOrCharge_Header>
        <xsl:copy-of select="CalculationLevel"/>
        <xsl:copy-of select="Qualifier"/>
        <xsl:copy-of select="Code"/>
        <Amount>
          <xsl:value-of select="format-number(sum(//AllowanceOrCharge_Header_002[Code = current()/Code]/Amount), '#.00')"/>
        </Amount>
      </AllowanceOrCharge_Header>
    </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>

Grüße,
Thomas