Subject: Re: [xsl] how to group nodes by id? From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Mon, 02 Dec 2002 11:34:33 -0500 |
does anybody know how to convert the following XML:
T:\ftemp>type artur.xml <elems> <elem id="1"> <elem id="1"/> </elem> <elem id="1"> <elem id="2"/> </elem> <elem id="2"> <elem id="1"/> </elem> <elem id="2"> <elem id="2"/> </elem> </elems>
T:\ftemp>type artur.xsl <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="elems"> <elems> <xsl:variable name="elem-children" select="elem"/> <xsl:for-each select="$elem-children"> <xsl:if test="generate-id(.)= generate-id($elem-children[@id=current()/@id])"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:copy-of select="$elem-children[@id=current()/@id]/node()"/> </xsl:copy> </xsl:if> </xsl:for-each> </elems> </xsl:template>
T:\ftemp>xt artur.xml artur.xsl <?xml version="1.0" encoding="utf-8"?> <elems> <elem id="1"> <elem id="1"/>
<elem id="2"/> </elem> <elem id="2"> <elem id="1"/>
<elem id="2"/> </elem> </elems>
T:\ftemp>type artur2.xsl <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="elems"> <elems> <xsl:for-each select="elem[generate-id(.)=generate-id(key('elems',@id))]"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:copy-of select="key('elems',@id)/node()"/> </xsl:copy> </xsl:for-each> </elems> </xsl:template>
T:\ftemp>saxon artur.xml artur2.xsl <?xml version="1.0" encoding="utf-8"?> <elems> <elem id="1">
</elem> <elem id="2">
</elem> </elems> T:\ftemp>
-- Upcoming hands-on in-depth XSLT/XPath and/or XSL-FO: - North America: Feb 3 - Feb 7,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 Next conference training: 2002-12-08,03-03,06
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] how to group nodes by id?, Vasu Chakkera | Thread | [xsl] filter, Paul |
Re: [xsl] how to group nodes by id?, Vasu Chakkera | Date | [xsl] & replacemnt?, El Hage Camille |
Month |