Hallo, ich bin neu hier und habe folgendes Problem:
Ich habe einen xml datensatz für audioprodukte und soll für die uni eine rechnungsdarstellung in xlst bauen. dabei sollen produkte die den gleichen titel und mwst. satz haben summiert werden.
hier ein auszug aus dem datensatz:
mein bisheriges stylesheet sieht folgendermaßen aus:
Ergebnis ist nun, dass alle Titel aufsummiert werden egal ob Sie die gleiche MwSt haben oder nicht:
Artist Title Units Sold Net Sales Price € TAX Net Revenue
Frank Sinatra Born To Be Wild 3 1.1583 20 3.4749
Anstelle von:
Artist Title Units Sold Net Sales Price € TAX Net Revenue
Frank Sinatra Born To Be Wild 2 1.1583 20 2,3166
Frank Sinatra Born To Be Wild 1 1.390 20 1.390
Hab schon alles probiert und bin ziemlich verzweifelt!
Bitte um Hilfe!!
Ich habe einen xml datensatz für audioprodukte und soll für die uni eine rechnungsdarstellung in xlst bauen. dabei sollen produkte die den gleichen titel und mwst. satz haben summiert werden.
hier ein auszug aus dem datensatz:
Code:
<...> <SPAUDIO> <LABEL_NAME>Arioala</LABEL_NAME> <TITLE>Born To Be Wild</TITLE> <ARTIST_LIST>Frank Sinatra</ARTIST_LIST> <PLAYTIME>339</PLAYTIME> <SPPRICE> <CURRENCY>EUR</CURRENCY> <SALES_COUNTRY>AUT</SALES_COUNTRY> <TAX>20</TAX> <EVP>139</EVP> </SPPRICE> </SPAUDIO> <SPAUDIO> <LABEL_NAME>Arioala</LABEL_NAME> <TITLE>Born To Be Wild</TITLE> <ARTIST_LIST>Frank Sinatra</ARTIST_LIST> <PLAYTIME>339</PLAYTIME> <SPPRICE> <CURRENCY>EUR</CURRENCY> <SALES_COUNTRY>DEU</SALES_COUNTRY> <TAX>20</TAX> <EVP>139</EVP> </SPPRICE> </SPAUDIO> <SPAUDIO> <LABEL_NAME>Arioala</LABEL_NAME> <TITLE>Born To Be Wild</TITLE> <ARTIST_LIST>Frank Sinatra</ARTIST_LIST> <PLAYTIME>339</PLAYTIME> <SPPRICE> <CURRENCY>EUR</CURRENCY> <SALES_COUNTRY>USA</SALES_COUNTRY> <TAX>0</TAX> <EVP>139</EVP> </SPPRICE> </SPAUDIO> </...>
mein bisheriges stylesheet sieht folgendermaßen aus:
Code:
<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" indent="yes"/> <xsl:key name="Track_Count" match="//SPAUDIO/TITLE" use="."/> <xsl:template match="/"> <table border="solid black 2px"> <tr><th>Artist Name</th><th>Track Name</th><th>Units Sold</th><th>Net Sales Price €</th><th>TAX</th><th>Net Revenue</th></tr> <xsl:apply-templates select="REPORT"/> </table> </xsl:template> <xsl:template match="REPORT"> <xsl:for-each select="//SPAUDIO/TITLE[generate-id()= generate-id(key('Track_Count',.)[1])]"> <xsl:sort select="count(key('Track_Count',.))" order="ascending"/> <tr> <td><xsl:value-of select="../ARTIST_LIST"/></td> <td><xsl:value-of select="."/></td> <td><xsl:value-of select="count(key('Track_Count',.))"/></td> <td><xsl:value-of select="(../SPPRICE/EVP - ((../SPPRICE/EVP div 120) * ../SPPRICE/TAX)) div 100"/></td> <td><xsl:value-of select="../SPPRICE/TAX"/></td> <td><xsl:value-of select="count(key('Track_Count',.)) * ((../SPPRICE/EVP - ((../SPPRICE/EVP div 120) * ../SPPRICE/TAX)) div 100)"/></td> </tr> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Artist Title Units Sold Net Sales Price € TAX Net Revenue
Frank Sinatra Born To Be Wild 3 1.1583 20 3.4749
Anstelle von:
Artist Title Units Sold Net Sales Price € TAX Net Revenue
Frank Sinatra Born To Be Wild 2 1.1583 20 2,3166
Frank Sinatra Born To Be Wild 1 1.390 20 1.390
Hab schon alles probiert und bin ziemlich verzweifelt!
Bitte um Hilfe!!