Subject: RE: [xsl] Yet another grouping question From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Wed, 08 Jan 2003 12:29:34 -0500 |
returning a node-set from the tables in all files instead of iterating through each file seems to make more sense. However, that does present a secondary grouping problem--your stylesheet outputs a separate country node for each city. I think combining your approach with Niko's suggestion of doing a second pass on the output (and using a key) will do the trick.
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/"> <airport-codes> <xsl:attribute name="xsi:noNamespaceSchemaLocation">airport_codes.xsd</xsl:attribute>
<xsl:variable name="airport-nodes" select="document(file-names/file)/xsl:stylesheet/ xsl:template[@match='/']/html/body/table[1]/tr/td/table/tr"/> <xsl:for-each select="$airport-nodes"> <xsl:sort select="../../b"/> <xsl:if test="generate-id( . ) = generate-id( $airport-nodes[ ../../b = current()/../../b] )"> <country name="{../../b}"> <xsl:variable name="in-city" select="$airport-nodes[ ../../b = current()/../../b]"/> <xsl:for-each select="$in-city"> <xsl:if test="generate-id( . ) = generate-id( $in-city[ td[1]=current()/td[1] ] )"> <city name="{td[1]}"> <xsl:for-each select="$in-city[ td[1]=current()/td[1] ]"> <xsl:sort select="td[3]"/> <airport code="{td[3]}"> <xsl:value-of select="td[2]"/> </airport> </xsl:for-each> </city> </xsl:if> </xsl:for-each> </country> </xsl:if> </xsl:for-each> </airport-codes> </xsl:template> </xsl:stylesheet>
-- Upcoming hands-on in-depth North America: February 3- 7,2003 XSLT/XPath and XSL-FO Europe: February 17-21,2003
G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) ISBN 0-13-065196-6 Definitive XSLT and XPath ISBN 0-13-140374-5 Definitive XSL-FO ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath ISBN 1-894049-10-1 Practical Formatting Using XSL-FO Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Yet another grouping ques, Martinez, Brian | Thread | RE: [xsl] Yet another grouping ques, Martinez, Brian |
Re: [xsl] xsl:sort with lang attrib, Togan Muftuoglu | Date | [xsl] [ANNOUNCE] XSLT-process 2.2 a, Ovidiu Predescu |
Month |