I have found various suggestions on this list, and links to more
explanatory pages describing the Muenchian technique to sort or group
xml data.
However, I am trying to do a kind of a double Muenchian, which is to
group xml data i two levels. but there must be something i am missing,
because it is not working as I expected.
The xml is the kind of standard data format:
<data>
<row>
<item name="1">data 1</item>
<item name="2">data 2</item>
<item name="3">data 3</item>
</row>
<row>
<item name="1">data 1</item>
<item name="2">data 2</item>
<item name="3">data 3</item>
</row>
</data>
My real xslt look like this:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1"
indent="yes"/>
<!-- V A R I A B L E S -->
<xsl:key name="suplier" match="/csv_data_records/record" use="item[2]"/>
<xsl:key name="product" match="/csv_data_records/record" use="item[4]"/>
<xsl:template match="/">
<book>
<xsl:apply-templates/>
</book>
</xsl:template>
<xsl:template match="csv_data_records">
<xsl:for-each select="record[count(. | key('suplier',
item[2])[1])=1]">
<chapter>
<xsl:attribute name="name"><xsl:value-of
select="item[3]"/></xsl:attribute>
<xsl:attribute name="value"><xsl:value-of
select="item[2]"/></xsl:attribute>
<xsl:for-each select="key('suplier', item[2])">
<product>
<xsl:attribute
name="group"><xsl:value-of
select="item[4]"/></xsl:attribute>
<xsl:for-each
select="key('product', item[4])">
<item>
<status>
<xsl:value-of select="item[1]"/>
</status>
<ean>
<xsl:value-of select="item[6]"/>
</ean>
<title>
<xsl:value-of select="item[7]"/>
</title>
</item>
</xsl:for-each>
</product>
</xsl:for-each>
</chapter>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
It seems that I am not getting the second grouping on the items right.
They are grouped all right, but they are repeated x times the node
item[4].
What have I missed out, or what am I doing wrong here.
/Thomas
--~------------------------------------------------------------------
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>
--~--