Subject: [xsl] Re: Recursive counting From: Steve <subsume@xxxxxxxxx> Date: Wed, 19 Jul 2006 15:40:40 -0400 |
Welp, a morning and an afternoon later I'm no closer to applying this solution. Here's what I've got.
What on earth is happening? ---------- <xsl:key name="options" match="option" use="@type"/> <xsl:key name="oldID" match="option" use="@oldID"/> <xsl:key name="prefs" match="disabPrimary" use="."/>
<xsl:template match="Records" mode="x"> <xsl:for-each select="document('../../Consumer.xml')/defs/disabs/option[generate-id(.)=generate-id(key('options',@type)[1])]"> <xsl:sort select="@type"/> <tr> <td> <xsl:value-of select="@type" /> </td> <td> <xsl:value-of select="count(key('oldID',key('options',@type)/@oldID))" /> <xsl:value-of select="count(key('prefs',$vP2//Record[disabPrimary=@oldID])))" /> <xsl:value-of select="count(key('prefs',key('options',@type)/@oldID))" /> </td> </tr> </xsl:for-each> --- and later ....
<xsl:apply-templates select="document('../../Consumer.xml')/cilDefinitions/disabilities" />
------ XML (within variable $vP2 ) <Records> <Record> <disabPrimary>101</disabPrimary> </Record> <Record> <disabPrimary>401</disabPrimary> </Record> <Record> <disabPrimary>201</disabPrimary> </Record>
<option oldID="204" type="Cognitive" name="Alzheimer's/Dementia"/> <option oldID="407" type="Physical" name="Amputation"/> <option oldID="405" type="Physical" name="Arthritic Conditions"/> <option oldID="101" type="Cognitive" name="Autism"/> <option oldID="100" type="Visual" name="Blind"/> ---------
<out type="Cognitive" count="X" /> <out type="Physical" count="X" /> <out type="Visual" count="X" />
-Steve ---------------------- XSL Related Suicide.
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.
XML ------->
<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> </option>
<people> <person pref="who" /> <person pref="nexus" /> <person pref="how" /> <person pref="alligator" /> <person pref="spurn" /> <person pref="triumph" /> .... etc .... </people>
Desired output ------->
<!-- @count corresponds to number of times the preference appeared among the list of <people> --->
<out type="A" count="1" /> <out type="B" count="3" /> <out type="C" count="1" />
Stipulation: --------->
<out>'s must be sorted alphabetically, regardless of <option> order.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Recursive counting, Steve | Thread | [xsl] matching attribute values tha, Jeff Sese |
Re: [xsl] templates with modes., George Cristian Bina | Date | RE: [xsl] templates with modes., Webmaster |
Month |