This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: RPN calculator
- From: "Siarhei Biarozkin" <sberyozkin at zandar dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 2 May 2002 13:53:50 +0100
- Subject: Re: [xsl] RPN calculator
- References: <7BC81EA1BAB7D411BEE500306E0014C0018D99F9@evks16.evk.admin.ch>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hi,
This is from MSDN Magazine's XML Files (May) :
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="add | subtract | multiply | divide">
<xsl:variable name="op1">
<xsl:apply-templates select="*[1]"/>
</xsl:variable>
<xsl:variable name="op2">
<xsl:apply-templates select="*[2]"/>
</xsl:variable>
<xsl:if test="local-name() = 'add'">
<xsl:value-of select="$op1 + $op2"/>
</xsl:if>
<xsl:if test="local-name() = 'subtract'">
<xsl:value-of select="$op1 - $op2"/>
</xsl:if>
<xsl:if test="local-name() = 'multiply'">
<xsl:value-of select="$op1 * $op2"/>
</xsl:if>
<xsl:if test="local-name() = 'divide'">
<xsl:value-of select="$op1 div $op2"/>
</xsl:if>
</xsl:template>
</xsl:transform>
Regards
Siarhei Biarozkin
----- Original Message -----
From: <Costantino.Sertorio@evk.admin.ch>
To: <xsl-list@lists.mulberrytech.com>
Sent: Thursday, May 02, 2002 12:01 PM
Subject: [xsl] RPN calculator
> Hello,
> I'm trying to do a simple calculator with XSL.
> This means that I would like to transform something like (but I can change
> the source format, this is only an example):
> <multiply>
> <arg1>2</arg1>
> <arg2>3</arg2>
> </multiply>
> This should yeld 6, and it's easy.
> But I would also like to do:
> <multiply>
> <arg1>
> <sum>
> <arg1>1</arg1>
> <arg2>2</arg2>
> </sum>
> </arg1>
> <arg2>3</arg2>
> </multiply>
> ...and so on, recursively. As with an RPN calculator.
> This should yeld (1+2)*3=6.
>
> Can anybody point me in the right direction? How can I do this?
>
> Thank you,
>
> Costantino
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
>
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list