xsl-list
[Top] [All Lists]

Re: [xsl] How to take a node set and convert it into a table view

2006-12-12 09:31:59

how do I make a table that looks like this:

a:1    b:2    c:3    d:4    e:5
f:6    g:7    h:8    i:9    j:10

In other words, a 5x2 table.

I am thinking that if I can get all the name/values in the first
example into a node set like in the second, then all I would have to
do is get the second node set into a table of 5 columns with X number
of rows.


I'm not sure I understand your description, which makes it seem rather
more complicated than it is. The following will handle any number of
rows, there are examples of this in the faq im sure.



<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:template match="nodes">
    <table>
      <xsl:for-each select="node[position() mod 5 =1]">
        <xsl:text>&#10;</xsl:text>
        <tr>
          <xsl:for-each select=".|following-sibling::node[position() &lt; 5]">
            <td><xsl:value-of select="concat(@name,':',.)"/></td>
          </xsl:for-each>
        </tr>
      </xsl:for-each>
      <xsl:text>&#10;</xsl:text>
    </table>
</xsl:template>

</xsl:stylesheet>

$ saxon node.xml node.xsl
<?xml version="1.0" encoding="utf-8"?><table>
<tr><td>a:1</td><td>b:2</td><td>c:3</td><td>d:4</td><td>e:5</td></tr>
<tr><td>f:6</td><td>g:7</td><td>h:8</td><td>i:9</td><td>j:10</td></tr>
</table>

David

--~------------------------------------------------------------------
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>
--~--