|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Tricky inclusion match
groupa_count and groupb_count are really the collection of results
from the match on "record". So the result for group a might be:
<groupa_count>
<value>1</value>
<value>2</value>
<value>1</value>
</groupa_count>
The sum of group a would then be: 4
On Tue, 29 Mar 2005 12:13:13 -0600, Jon Gorman
<jonathan.gorman@xxxxxxxxx> wrote:
> > Here is what I have so far, I have a match on "record". I use a key
> > "key_paint" to count my "group a" items and the same key to count my
> > "groub b" items. Group a and group b items are predifined as part of
> > the xml source. So, I achieve a unique count of "group a" and "group
> > b" items and now I need to evaluate the total of these two. In plain
> > english: "count unique items and then sum the count". (see
> > additional comments inline below)
>
> I have this feeling I must be missing part of the problem, but why not
> just add the variables (ie $groupa_count + $groupb_count) in the
> value-of? (see below)
>
> If you want the sum for both groupa and groupb and then add those
> together can't you simply use sum in a template that similar to the
> "count" template you have?
>
> > <xsl:template match="record">
> >
> > <xsl:variable name="groupa_count">
> >
> > !!comment: right here, instead of a select I'd like to wrap this in a
> > SUM() but not possible... or is it? Using value-of instead doesn't
> > drive my template match and it is impossible to implement the use of a
> > mode.
> >
> > <xsl:apply-templates
> > select="ancestor::recordset/record[field[@fieldname='paint']=$luMD_GroupA][generate-id()=generate-id(key('key_paint',field[@fieldname='paint']))]"
> > mode="COUNT"/>
> > </xsl:variable>
> > <xsl:variable name="groupb_count">
> > <xsl:apply-templates
> > select="ancestor::recordset/record[field[@fieldname='paint']=$luMD_GroupB][generate-id()=generate-id(key('key_paint',field[@fieldname='paint']))]"
> > mode="COUNT"/>
> > </xsl:variable>
>
> <xsl:variable name="total_count">
> <xsl:value-of select="$groupa_count + $groupb_count"/>
> </xsl:variable>
>
> <!-- should probably do something with the variable here, but I'm not
> sure what you want...perhaps just have the xsl:value-of
> select="$groupa_count + $groub_count"? -->
> >
> > </xsl:template>
> >
> > <xsl:template match="record" mode="COUNT">
> > <xsl:value-of select="number(count(ancestor::recordset/record[field[@fieldname='paint']
> > = current()/field[@fieldname='paint']]))"/>
> > </xsl:template>
|
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
|

Cart








