Altova Mailing List Archives>Archive Index >microsoft.public.xsl Archive Home >Recent entries [Thread Prev] >Thread Next - Re: Problem grouping Problem groupingTo: NULL Date: 11/1/2005 3:12:00 AM I use the Muenchian Method for grouping
but the <xsl:for-each select="Assignment[generate-id() =
generate-id(key('by-number', Number)[1])]">
takes all numbers in stead of only the numbers I want per PUZ
Does anyone know an answer ???
OK here is a sample
part of my XML
<root>
<puz>
<General>
<Type>XXXX</Type>
</General>
<Assignments>
<Word>
<Number>1</Number>
<Word>BLA</Word>
</Word>
<Word>
<Number>3</Number>
<Word>ZON</Word>
</Word>
<Word>
<Number>1</Number>
<Word>DROP</Word>
</Word>
<Word>
<Number>4</Number>
<Word>AAN</Word>
</Word>
<Word>
<Number>2</Number>
<Word>BALK</Word>
</Word>
<Word>
<Number>3</Number>
<Word>VIS</Word>
</Word>
<Assignments>
</puz>
<puz>
<General>
<Type>XXXX</Type>
</General>
<Assignments>
<Word>
<Number>2</Number>
<Word>KIP</Word>
</Word>
<Word>
<Number>5</Number>
<Word>FIETS</Word>
</Word>
<Word>
<Number>2</Number>
<Word>VIER</Word>
</Word>
<Word>
<Number>4</Number>
<Word>EEN</Word>
</Word>
<Word>
<Number>2</Number>
<Word>BOOM</Word>
</Word>
<Word>
<Number>3</Number>
<Word>FOUT</Word>
</Word>
<Assignments>
</puz>
</root>
How I want it to be
<PUZ>
<TIT>1</TIT>
<TXT>BLA</TXT>
<TXT>DROP</TXT>
<TIT>2</TIT>
<TXT>BOOM</TXT>
<TIT>3</TIT>
<TXT>VIS</TXT>
<TXT>ZON</TXT>
<TIT>4</TIT>
<TXT>AAN</TXT>
</PUZ>
<PUZ>
<TIT>2</TIT>
<TXT>BALK</TXT>
<TXT>KIP</TXT>
<TXT>VIER</TXT>
<TIT>3</TIT>
<TXT>FOUT</TXT>
<TIT>4</TIT>
<TXT>EEN</TXT>
<TIT>5</TIT>
<TXT>FIETS</TXT>
</PUZ>
it becomes
<PUZ>
<TIT>1</TIT>
<TXT>BLA</TXT>
<TXT>DROP</TXT>
<TIT>2</TIT>
<TXT>BALK</TXT>
<TXT>BOOM</TXT>
<TXT>KIP</TXT>
<TXT>VIER</TXT>
<TIT>3</TIT>
<TXT>FOUT</TXT>
<TXT>VIS</TXT>
<TXT>ZON</TXT>
<TIT>4</TIT>
<TXT>AAN</TXT>
<TXT>EEN</TXT>
</PUZ>
<PUZ>
<<TIT>5</TIT>
<TXT>FIETS</TXT>
</PUZ>
part of my Basic.xsl
<?xml version="1.0" encoding="ISO-8859-15" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="C:\XXXX.xsl"/>
<xsl:key name="by-number" match="Assignment" use="Number" />
<xsl:output method="text" media-type="text/plain"
encoding="ISO-8859-15" />
...
...
<xsl:template match="Puz">
<xsl:choose>
<xsl:when test="General[Type='XXXX']">
<xsl:call-template name="XXXX_Puz"/>
</xsl:when>
<xsl:template name="XXXX_Puz">
<xsl:apply-templates select="Assignments" />
</xsl:template>
<xsl:template match="Assignments">
<xsl:for-each select="Assignment[generate-id() =
generate-id(key('by-number', Number)[1])]">
<xsl:sort select="Number" />
<xsl:TXT><![CDATA[<TIT>]]></xsl:TXT><xsl:value-of
select="Number"
/><xsl:TXT><![CDATA[</TIT>]]> </xsl:TXT>
<xsl:for-each select="key('by-number', Number)">
<xsl:sort select="Word" />
<xsl:TXT><![CDATA[<TXT>]]></xsl:TXT><xsl:value-of
select="Word" /><xsl:TXT><![CDATA[</TXT>]]> </xsl:TXT>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
