Re: [xsl] looking for best way to group elements

Subject: Re: [xsl] looking for best way to group elements
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 8 Sep 2006 23:41:48 +0100
perhaps something like


<xsl:stylesheet version="2.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output omit-xml-declaration="yes" indent="yes"/>  


  <xsl:template match="group">
    <xsl:variable name="n" select="count(field[@name='ppl_language'])"/>
    <xsl:for-each-group select="field" group-by="(position()-1) mod $n">
      <div class="group">
      <xsl:for-each select="current-group()">
        <span><xsl:value-of select="@displayName"/></span>
	  <span><xsl:value-of select="."/></span>
	  </xsl:for-each>
      </div>
    </xsl:for-each-group>
  </xsl:template>

</xsl:stylesheet>

$ saxon8 group.xml  group.xsl
<div class="group">
   <span>Language</span>
   <span> Spanish </span>
   <span>Native?</span>
   <span> Yes </span>
   <span>Spoken</span>
   <span> Fluent </span>
   <span>Written</span>
   <span> Fluent </span>
</div>
<div class="group">
   <span>Language</span>
   <span> Portuguese </span>
   <span>Native?</span>
   <span> No </span>
   <span>Spoken</span>
   <span> Functional </span>
   <span>Written</span>
   <span> Survival
</span>
</div>

Current Thread