This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: context-independent counter
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] context-independent counter
- From: Linda van den Brink <lvdbrink at baan dot nl>
- Date: Wed, 7 Feb 2001 15:57:41 +0100
- Reply-To: xsl-list at lists dot mulberrytech dot com
>
> <list>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> <li>text</li>
> </list>
>
> [through:]
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <xsl:variable name="counter" select="10"/>
> <xsl:output method="xml" version="1.0"
> encoding="UTF-8" indent="yes"/>
> <xsl:template match="/">
> <svg>
> <xsl:for-each select="/list/child::li">
> <rect x="{$counter}" y="10"
> width="6" height="4"/>
> <xsl:variable name="counter"
> select="$counter+10"/>
> </xsl:for-each>
> </svg>
> </xsl:template>
> </xsl:stylesheet>
You don't say exactly what output you want but looking at your code I think
you want a series of rectangles, the first with x=10, the second with x=20,
etc. In that case: you don't need a counter. The XSLT processor already
counts the nodes in a node set. Each node has a number you can access. So
all you need to do is get the position number of each li element and
multiply it by ten...
<rect x="{position() * 10}" y="10" width="6" height="4"/>
Linda
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list