This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RPN calculator


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]