Subject: [xsl] Line SVG charts via XSLT From: Thorsten Richter <Richter@xxxxxxxxxxxxxxxxxx> Date: Fri, 6 Jul 2001 16:09:18 +0200 |
Hello, I'm working for a little project to transform XML with XSL(T) in a SVG line chart. For drawing lines in SVG I have to specify two points. For example, I would like to draw a line with the y-coordinates of the three <natrium>-Tags in my XML-file - the x-coordinates are maybe 50, 100, 150. I tried to do it with a <xsl:for-each> and a position() like shown in my (simplified) XSL-file, but it doesn't work. My idea is something like ... natrium[position + 1] ... for the following value. Can anybody help me?? Thanks a lot... Thorsten Richter <?xml version="1.0"?> <laborviewer> <labor> <natrium>144</natrium> <kalium>4.3</kalium> <hb>9.1</hb> </labor> <labor> <natrium>150</natrium> <kalium>4.9</kalium> <hb>8.8</hb> </labor> <labor> <natrium>140</natrium> <kalium>5.0</kalium> <hb>8.0</hb> </labor> </laborviewer> <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://w3.org/1999/xlink"> <xsl:template match="/"> <xsl:apply-templates select="laborviewer"/> </xsl:template> <xsl:template match="laborviewer"> <svg height="100%" width="100%"> <xsl:for-each select="labor"> <xsl:apply-templates select="."> <xsl:with-param name="x-offset"><xsl:value-of select="(position() * 50)"/></xsl:with-param> <xsl:with-param name="y-natrium-after"><xsl:value-of select="natrium[(position() + 1)]"/></xsl:with-param> </xsl:apply-templates> </xsl:for-each> </svg> </xsl:template> <xsl:template match="labor"> <xsl:param name="x-offset" select="' '"/> <xsl:param name="y-natrium-after" select="' '"/> <xsl:variable name="y-natrium"><xsl:value-of select="natrium"/></xsl:variable> <g style="fill:red; stroke:red; stroke-width:1"> <path> <xsl:attribute name="id"> <xsl:text>line_row1</xsl:text></xsl:attribute> <xsl:attribute name="style"><xsl:text>visibility:visible</xsl:text></xsl:attribute> <xsl:attribute name="d"> <xsl:text>M </xsl:text><xsl:value-of select="$x-offset"/><xsl:text> </xsl:text><xsl:value-of select="$y-natrium"/> <xsl:text> L </xsl:text><xsl:value-of select="$x-offset + 28"/><xsl:text> </xsl:text><xsl:value-of select="$y-natrium-after"/> </xsl:attribute> </path> </g> </xsl:template> </xsl:stylesheet> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Controlling which nodes , Troadec Pascal | Thread | Re: [xsl] Line SVG charts via XSLT, Wendell Piez |
RE: [xsl] Controlling which nodes , Troadec Pascal | Date | Re: [xsl] Line SVG charts via XSLT, Oliver Becker |
Month |