[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Recursive counting
At 2006-07-18 22:19 -0400, I wrote:
At 2006-07-18 21:18 -0400, I wrote:At 2006-07-18 17:24 -0400, Steve wrote:Well after success with my first recursive template I was all set to make one of my own, but now shamefully am coming to the list for advice over something that appears quite simple.
. . . . . . . . Ken T:\ftemp>type steve.xml <?xml version="1.0" encoding="US-ASCII"?> <data> <options> <o type="A">who</o> <o type="A">what</o> <o type="A">when</o> <o type="B">how</o> <o type="B">nexus</o> <o type="B">triumph</o> <o type="C">alligator</o> <o type="C">spurn</o> </options> <people> <person pref="who" /> <person pref="nexus" /> <person pref="how" /> <person pref="alligator" /> <person pref="spurn" /> <person pref="triumph" /> .... etc .... </people> </data> T:\ftemp>type steve.xsl <?xml version="1.0" encoding="US-ASCII"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output indent="yes"/> <xsl:key name="options" match="o" use="@type"/> <xsl:key name="prefs" match="person" use="@pref"/> <xsl:template match="/data"> <output> <xsl:for-each select="options/o[generate-id(.)= generate-id(key('options',@type)[1])]"> <xsl:sort select="@type"/> <out type="{@type}" count="{count(key('prefs',key('options',@type)))}"/> </xsl:for-each> </output> </xsl:template> </xsl:stylesheet> T:\ftemp>xslt steve.xml steve.xsl con <?xml version="1.0" encoding="utf-8"?> <output> <out type="A" count="1"/> <out type="B" count="3"/> <out type="C" count="2"/> </output> T:\ftemp> -- Registration open for UBL training: Montrial, Canada 2006-08-07 Also for XSL-FO/XSLT training: Minneapolis, MN 2006-07-31/08-04 Also for UBL/XML/XSLT/XSL-FO training: Varo,Denmark 06-09-25/10-06 World-wide corporate, govt. & user group UBL, XSL, & XML training. 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) Male Cancer Awareness Aug'05 http://www.CraneSoftwrights.com/s/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|