Subject: Re: [xsl] Trying to pull of a double Muenchian From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Tue, 28 Feb 2006 12:33:06 -0500 |
<xsl:key name="product" match="/csv_data_records/record" use="concat(item[2], item[4])"/>
Cheers, Wendell
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
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
Current Thread |
---|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Trying to pull of a double Mu, Verakso | Thread | Re: [xsl] Trying to pull of a doubl, Verakso |
RE: [xsl] problem adding namespace , Michael Kay | Date | RE: [xsl] problem adding namespace , Majirus FANSI |
Month |