title: XSLT to transform list into table with columns determined dynamically
body: <p>I need this XML,</p>
  
  <pre><code>&lt;list columns="3"&gt;
    &lt;item&gt;martin&lt;/item&gt;
    &lt;item&gt;donald&lt;/item&gt;
    &lt;item&gt;whistler&lt;/item&gt;
    &lt;item&gt;mother&lt;/item&gt;
    &lt;item&gt;carl&lt;/item&gt;
    &lt;item&gt;liz&lt;/item&gt;
    &lt;item&gt;cosmo&lt;/item&gt;
  &lt;/list&gt;
  </code></pre>
  
  <p>to look like this:</p>
  
  <pre><code>&lt;table&gt;
    &lt;tr&gt;
      &lt;td&gt;martin&lt;/td&gt;
      &lt;td&gt;donald&lt;/td&gt;
      &lt;td&gt;whistler&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;mother&lt;/td&gt;
      &lt;td&gt;carl&lt;/td&gt;
      &lt;td&gt;liz&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;cosmo&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
  </code></pre>
  
  <p>When <code>columns="4"</code>, it should look like this:</p>
  
  <pre><code>&lt;table&gt;
    &lt;tr&gt;
      &lt;td&gt;martin&lt;/td&gt;
      &lt;td&gt;donald&lt;/td&gt;
      &lt;td&gt;whistler&lt;/td&gt;
      &lt;td&gt;mother&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;carl&lt;/td&gt;
      &lt;td&gt;liz&lt;/td&gt;
      &lt;td&gt;cosmo&lt;/td&gt;
      &lt;td&gt;&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/table&gt;
  </code></pre>
  
  <p>Any hints on what the XSLT file should look like?  Near as I can tell, it requires some kind of loop (recursion?), but I'm not sure if there's a more elegant way.</p>