Subject: Re: [xsl] Line SVG charts via XSLT From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Fri, 06 Jul 2001 11:42:07 +0100 |
<xsl:with-param name="y-natrium-after"> <xsl:value-of select="following-sibling::labor[1]/natrium"/> </xsl:with-param>
<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>
<xsl:apply-templates select="labor"> <xsl:with-param name="x-offset" select="(position() * 50)"/> <xsl:with-param name="y-natrium-after" select="natrium[(position() + 1)]"/> </xsl:apply-templates>
<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>
<path id="line-row1" style="visibility:visible" d="M {$x-offset} {$y-natrium} L {$x-offset + 28} {$y-natrium-after}"/>
Good luck, Wendell
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>
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Line SVG charts via XSLT, Thorsten Richter | Thread | Re: [xsl] Line SVG charts via XSLT, Oliver Becker |
RE: [xsl] Daft Question but, Michael Kay | Date | RE: [xsl] Daft Question but, Chris Bayes |
Month |