ThomasM: Werte abhängig von preceding-sibling summieren

Beitrag lesen

Hallo Lukas,

Aber: in der Zieldatei soll jeder artikel nur einmal vorkommen,
in diesem beispiel sollte also bei artikel P1  die Production quantity 40 betragen.

Wenn das Ergebnis mittels XSLT entstehen soll, dann probiere diesen Ansatz:

<xsl:key name="groupby" match="Item" use="number"/>  
  
<xsl:template match="/">  
  <output>  
    <xsl:for-each select="//Item[generate-id() = generate-id(key('groupby',number)[1])]">  
      <xsl:variable name="number" select="number"/>  
      <productionlist>  
        <production quantity="{sum(//amount[../following-sibling::Item[1]/number=$number])}" article="{$number}"/>  
      </productionlist>  
    </xsl:for-each>  
  </output>  
</xsl:template>

Ergebnis:

<?xml version="1.0" encoding="UTF-8"?>  
<output>  
  <productionlist>  
    <production quantity="40" article="P1"/>  
  </productionlist>  
  <productionlist>  
    <production quantity="10" article="K21"/>  
  </productionlist>  
  <productionlist>  
    <production quantity="10" article="K24"/>  
  </productionlist>  
  <productionlist>  
    <production quantity="10" article="K27"/>  
  </productionlist>  
  <productionlist>  
    <production quantity="10" article="E26"/>  
  </productionlist>  
  <productionlist>  
    <production quantity="10" article="E51"/>  
  </productionlist>  
</output>

Grüße,
Thomas