This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: RPN calculator
- From: "Michael Kay" <michael dot h dot kay at ntlworld dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Thu, 2 May 2002 14:24:06 +0100
- Subject: RE: [xsl] RPN calculator
- Reply-to: xsl-list at lists dot mulberrytech dot com
Looks easy to me:
<xsl:template match="sum">
<xsl:variable name="arg1">
<xsl:apply-templates select="arg1"/>
</xsl:variable>
<xsl:variable name="arg2">
<xsl:apply-templates select="arg2"/>
</xsl:variable>
<xsl:value-of select="$arg1 + $arg2"/>
</xsl:template>
<xsl:template match="multiply">
<xsl:variable name="arg1">
<xsl:apply-templates select="arg1"/>
</xsl:variable>
<xsl:variable name="arg2">
<xsl:apply-templates select="arg2"/>
</xsl:variable>
<xsl:value-of select="$arg1 * $arg2"/>
</xsl:template>
<xsl:template match="arg1|arg2">
<xsl:apply-templates/>
</xsl:template>
What's reverse polish notation got to do with it?
Michael Kay
Software AG
home: Michael.H.Kay@ntlworld.com
work: Michael.Kay@softwareag.com
> -----Original Message-----
> From: owner-xsl-list@lists.mulberrytech.com
> [mailto:owner-xsl-list@lists.mulberrytech.com]On Behalf Of
> Costantino.Sertorio@evk.admin.ch
> Sent: 02 May 2002 12:02
> To: xsl-list@lists.mulberrytech.com
> 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