Re: [xsl] how to recycle code to process the same element more than once

Subject: Re: [xsl] how to recycle code to process the same element more than once
From: Manuel Souto Pico <manuel.souto@xxxxxxxxxxxxxx>
Date: Fri, 13 Feb 2009 17:24:52 +0100
Thank you, David.

Indeed, it's simpler and in fact it makes more sense to me.

Btw, J. Tennison's site seems very helpful (more straight to the point than the book I got from the library), thank you.

Manuel Souto Pico


David Carlisle escribis:
the 'key' and the 'generate-id' bits ;)
that's muenchian grouping, see jeni tennison's site for some tutorials
on that, but that idiom isn't needed in xslt2

By the way, I guess I can use xslt 2 too. Feel free to send a solution for that version if you think it's simpler and that it's worthy using that one instead.

ok:


structurally it's identical to the first one, but what used to use Steve
Muench's cunning use of keys is now more directly written using the
for-each-group instruction.


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



<xsl:output indent="yes" encoding="US-ASCII"/> <xsl:strip-space elements="*"/>

<xsl:template match="/">
 <martif type="TBX" xml:lang="en">
  <text>
   <body>
    <xsl:apply-templates select="dictionary/records/record">
    </xsl:apply-templates>
   </body>
  </text>
 </martif>
</xsl:template>



<xsl:template match="record">
 <termEntry id="{@num}">
  <xsl:for-each-group select="term" group-by="@lang">
   <langSet xml:lang="{@lang}">
    <xsl:apply-templates select="current-group()"/>
   </langSet>
  </xsl:for-each-group>
 </termEntry>
</xsl:template>




<xsl:template match="term"> <term id=""><xsl:apply-templates/></term> </xsl:template>

</xsl:stylesheet>

________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. ________________________________________________________________________

Current Thread