Subject: Re: XSLT: decorating a grammatical tree From: David Carlisle <davidc@xxxxxxxxx> Date: Wed, 10 May 2000 16:56:10 +0100 (BST) |
<exp> <add-exp> <add-exp> <mult-exp> <primary-exp> <literal value="2"/> </primary-exp> </mult-exp> </add-exp> <op-add/> <mult-exp> <primary-exp> <literal value="3"/> </primary-exp> </mult-exp> </add-exp> </exp> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > <xsl:output method="xml" indent="yes"/> <xsl:template match="add-exp[op-add]" mode="value"> <xsl:variable name="x"> <xsl:apply-templates select="*[1]" mode="value"/> </xsl:variable> <xsl:variable name="y"> <xsl:apply-templates select="*[3]" mode="value"/> </xsl:variable> <xsl:value-of select="$x + $y"/> </xsl:template> <xsl:template match="add-exp[op-sub]" mode="value"> <xsl:variable name="x"> <xsl:apply-templates select="*[1]" mode="value"/> </xsl:variable> <xsl:variable name="y"> <xsl:apply-templates select="*[3]" mode="value"/> </xsl:variable> <xsl:value-of select="$x - $y"/> </xsl:template> <xsl:template match="primary-exp[op-mult]" mode="value"> <xsl:variable name="x"> <xsl:apply-templates select="*[1]" mode="value"/> </xsl:variable> <xsl:variable name="y"> <xsl:apply-templates select="*[3]" mode="value"/> </xsl:variable> <xsl:value-of select="$x * $y"/> </xsl:template> <xsl:template match="literal" mode="value"> <xsl:value-of select="number(@value)"/> </xsl:template> <xsl:template match="*" mode="value"> <xsl:apply-templates select="*" mode="value"/> </xsl:template> <xsl:template match="*"> <xsl:copy> <xsl:attribute name="value"> <xsl:apply-templates select="." mode="value"/> </xsl:attribute> <xsl:apply-templates/> </xsl:copy> </xsl:template> <xsl:template match="op-add|op-sub|op-mult"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:template> </xsl:stylesheet> bash-2.01$ xt exp.xml exp.xsl <?xml version="1.0" encoding="utf-8"?> <exp value="5"> <add-exp value="5"> <add-exp value="2"> <mult-exp value="2"> <primary-exp value="2"> <literal value="2"/> </primary-exp> </mult-exp> </add-exp> <op-add/> <mult-exp value="3"> <primary-exp value="3"> <literal value="3"/> </primary-exp> </mult-exp> </add-exp> </exp> bash-2.01$ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
XSLT: decorating a grammatical tree, OGERARDIN | Thread | XSL Stylesheets for Docbook, Volker Wend |
OFF TOPIC: New Dad, Wendell Piez | Date | Can XSL recognize IE5 versus Netsca, Medina, Edward |
Month |