webForumDet fria alternativet

Enkel matematik i XSLT

XML

7 svar · 595 visningar · startad av Xcon

Medlem sedan nov. 200334 inlägg
Frågan#1

Jag undrar hur man kan multiplicera två olika element med varandra i XSLT?
ex:

<FAKTURA>
<PRODUKT>
<PRIS>100</PRIS>
<ANTAL>2</ANTAL>
</PRODUKT>
<PRODUKT>
<PRIS>110</PRIS>
<ANTAL>5</ANTAL>
</PRODUKT>
</FAKTURA>

Vill alltså multiplicera PRIS med ANTAL....

Jag undrar oxå hur man kan summera flera produkter med varandra, alltså summera summan (sum) av alla produkter....

Tack på förhand

Medlem sedan dec. 2002789 inlägg
#2

I samma kodstycket där du skriver ut priset och antalet kan du ha följande kod:

<xsl:value-of select="round(PRIS * ANTAL)" />
Medlem sedan dec. 2002789 inlägg
#3

Kom på en sak. Om du har decimaler i dina priser så kanske du vill använda följande kod istället:

<xsl:value-of select="number(PRIS * ANTAL)" />

Detta gör så att även decimalerna skrivs ut.

Medlem sedan nov. 200334 inlägg
#4

Tack för hjälpen, det löste det första problemet...

Men hur kan man få ut summan av hela fakturan dvs pris*antal+pris*antal?
Har testat lite med sum, men det verkar inte funka...

Medlem sedan dec. 2002789 inlägg
#5

Det var en lite svårare nöt att knäcka. Ska fundera på detta så återkommer jag.

Medlem sedan nov. 200334 inlägg
#6

Tack för hjälpen..
Jag löste problemet, hittatde en sida som hade en lösning:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/htm/xsl_advanced2_4rvy.asp

Medlem sedan dec. 2002789 inlägg
#7

Fungerar detta även i Mozilla/NS? Eller du kanske inte har sådana krav för det hela?

Medlem sedan nov. 200334 inlägg
#8

Har inte testat, men det är inte heller ett krav...

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)