xsl-list
[Top] [All Lists]

[xsl] Re: Recursive counting

2006-07-19 13:01:06
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=(_at_)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>

and within Consumer.xml .......

<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"/>
---------

Desired output

<out type="Cognitive" count="X" />
<out type="Physical" count="X" />
<out type="Visual" count="X" />

<!--- X = count of times @oldID=disabPrimary of @type Cognitive -->

-Steve
----------------------
XSL Related Suicide.

On 7/18/06, Steve <subsume(_at_)gmail(_dot_)com> 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.

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.


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>