In 2.0, with <list> as the context node, it's something like this:
<xsl:variable name="list" select="."/>
<table>
<xsl:for-each select="1 to max(item/@x)">
<xsl:variable name="x" select="."/>
<tr>
<xsl:for-each select="1 to max(item/@y)">
<xsl:variable name="y" select="."/>
<td>
<xsl:value-of select="count($list/item[(_at_)x=$x and @y=$y])"/>
</td>
</xsl:for-each>
</tr>
</xsl:for-each>
</table>
In 1.0, you can replace the for-each loops with a recursion, or with
something like
<xsl:for-each select="//node()[position() <= $max-x]">
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Bru, Pierre [mailto:Pierre(_dot_)Bru(_at_)spotimage(_dot_)fr]
Sent: 30 October 2005 22:48
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] how to convert from list to grid ?
hello,
I've been racking my brains for a couple of weeks now but I
can not find
a way to do the folowing: I have a list reprenting the type
and integer
coordinate of various items on a square grid like this one:
<list>
<item id="1" type="foo" x="1" y="7" />
<item id="2" type="bar" x="8" y="2" />
<item id="3" type="foo" x="8" y="2" />
<item id="4" type="bar" x="8" y="3" />
<item id="5" type="bar" x="8" y="3" />
<item id="6" type="bar" x="8" y="3" />
...
</list>
- "id" are unique
- each cell may contain any number of item (including 0).
- there are as many lines as needed for each cell (see [8,2] or [8,3])
- the cell are in no particular order for now but this can be
changed as
needed
I would like to transform this list into a square grid (table?) with :
- if the cell contains no item, an empry cell
- otherwise, the count of item(s) of each type (one value for
each type
present on the cell)
is this feasable with XSLT ?
TIA,
Pierre.
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--