Hallo Julian,
wie kann ich den Inhalt unter "AllowanceOrCharge_Header_002/Amount" summieren und anschließend das "_002" entfernen? Es darf dann das Element "AllowanceOrCharge_Header_002" nicht mehr im XML ausgegeben werden.
Dem XML fehlt zunächst </LineInformation> zur Wohlgeformtheit und damit Transformierbarkeit.
Unter der Annahme, dass alle Inhalte außer Amount jeweils identisch sind, ergibt das die gesuchte Ausgabe. Aber vermutlich gibt es wieder abstruse nicht genannte Spezialfälle. 😉
<?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:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="HeaderInformation">
<HeaderInformation>
<AllowanceOrCharge_Header>
<xsl:copy-of select="AllowanceOrCharge_Header_002[1]/CalculationLevel"/>
<xsl:copy-of select="AllowanceOrCharge_Header_002[1]/Qualifier"/>
<xsl:copy-of select="AllowanceOrCharge_Header_002[1]/Code"/>
<Amount>
<xsl:value-of select="format-number(sum(//AllowanceOrCharge_Header_002[Code = 'FI']/Amount), '#.00')"/>
</Amount>
</AllowanceOrCharge_Header>
</HeaderInformation>
</xsl:template>
</xsl:stylesheet>
Offenbar sollen es nicht vier Nachkommastellen sein, von daher #.00 gesetzt.
Grüße,
Thomas