RE: [xsl] RE: [Bu posta banka disindan gelmekte olup gerektiginde teyit alinmalidir.] - [xsl] find the sum over distinct nodes - Sender blacklisted

Subject: RE: [xsl] RE: [Bu posta banka disindan gelmekte olup gerektiginde teyit alinmalidir.] - [xsl] find the sum over distinct nodes - Sender blacklisted
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 18 Nov 2004 16:55:08 -0000
Last time Jarno showed you what to do, you did something different and then
said it didn't work.

Now you still say it doesn't work, but you're not telling us what you've
done this time.

Show a complete source document, a complete stylesheet, the output you are
getting, and the output that you want.

It's going to be difficult for you to use Jarno's code correctly unless you
study it enough to understand it. Reading Jeni's XSLT grouping pages will
help greatly: http://www.jenitennison.com/xslt/grouping

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Osman Ginar Eren [mailto:Cinar.Eren@xxxxxxxxxxxxx]
> Sent: 18 November 2004 15:36
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] RE: [Bu posta banka disindan gelmekte olup
> gerektiginde teyit alinmalidir.] - [xsl] find the sum over
> distinct nodes - Sender blacklisted
>
> it does not work:(
> for the first nodeset, it writes for one of the B nodes.
>
> nothing else:(
>
> any ideas?
>
> -----Original Message-----
> From: Jarno.Elovirta@xxxxxxxxx [mailto:Jarno.Elovirta@xxxxxxxxx]
> Sent: Thursday, November 18, 2004 1:41 PM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] RE: [Bu posta banka disindan gelmekte olup
> gerektiginde teyit alinmalidir.] - [xsl] find the sum over distinct
> nodes - Sender blacklisted
>
>
> Hi,
>
> > 	     <xsl:for-each select="$ZZZ[generate-id(.)]">
>
> This is in effect the same as
>
>   <xsl:for-each select="$ZZZ">
>
> as an id can be generated for each node and it will always be
> a non-zero length string. Just use
>
> <xsl:template name="temp1">
>   <xsl:param name="ZZZ" />
>   <xsl:for-each select="$ZZZ/B[generate-id(value) =
> generate-id(key('dkey', value/v1))]">
>     <xsl:variable name="miktar" select="sum(key('dkey',
> value/v1)/v2)"/>
>     <fo:table-row>
>       <fo:table-cell>
>         <fo:block text-align="left" font-size="8pt" >
>           <xsl:value-of select='format-number($miktar,
> "###,###.00")'/>
>         </fo:block>
>       </fo:table-cell>
>     </fo:table-row>
>   </xsl:for-each>
> </xsl:template>
>
> Cheers,
>
> Jarno
>
> > 		...
> > 		<xsl:if test=...>
> > 			  <xsl:for-each
> > select="$ZZZ/B/value[generate-id(.) =
> generate-id(key('dkey', v1))]">
> > 			    <xsl:variable name="miktar"
> > select="sum(key('dkey', v1)/v2)"/>
> > 			    <fo:table-row>
> > 			      <fo:table-cell>
> > 			        <fo:block text-align="left"
> > font-size="8pt" >
> > 		          <xsl:value-of
> > select='format-number($miktar, "###,###.00")'/>
> > 		        </fo:block>
> > 		      </fo:table-cell>
> > 		    </fo:table-row>
> > 		  </xsl:for-each>
> >
> > 		</xsl:if>
> >
> > 		  </xsl:for-each>
> > 		  </xsl:template>
> >
> > is this a wrong idea to use ZZZ multiple times?
> >
> > -----Original Message-----
> > From: Jarno.Elovirta@xxxxxxxxx [mailto:Jarno.Elovirta@xxxxxxxxx]
> > Sent: Thursday, November 18, 2004 11:55 AM
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: RE: [xsl] RE: [Bu posta banka disindan gelmekte olup
> > gerektiginde teyit alinmalidir.] - [xsl] find the sum over distinct
> > nodes - Sender blacklisted
> >
> >
> > Hi,
> >
> > > <xsl:key name="dkey" match="value" use="v1"/>
> > > <xsl:for-each select="$ZZZ[generate-id(.)]/B[generate-id(.) =
> > > generate-id(key('dkey',v1)[1])]">
> >
> > [generate-id(.)] will always return true, so we can rewrite
> > the above into
> >
> > $ZZZ/B[generate-id(.) = generate-id(key('dkey',v1)[1])]
> >
> > > but this returns nothing, that is this does not return a
> nodeset...
> > > i have a problem with the grouping.
> > > any ideas?
> >
> > How about
> >
> >   <xsl:for-each select="$ZZZ/B[generate-id(value) =
> > generate-id(key('dkey', value/v1))]">
> >     <xsl:variable name="miktar" select="sum(key('dkey',
> > value/v1)/v2)"/>
> >     <fo:table-row>
> >       <fo:table-cell>
> >         <fo:block text-align="left" font-size="8pt" >
> >           <xsl:value-of select='format-number($miktar,
> > "###,###.00")'/>
> >         </fo:block>
> >       </fo:table-cell>
> >     </fo:table-row>
> >   </xsl:for-each>
> >
> > Cheers,
> >
> > Jarno
> >
> > > regards..
> > >
> > > -----Original Message-----
> > > From: Osman G}nar Eren [mailto:Cinar.Eren@xxxxxxxxxxxxx]
> > > Sent: Thursday, November 18, 2004 10:43 AM
> > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > Subject: [Bu posta banka d}~}ndan gelmekte olup gerektipinde teyit
> > > al}nmal}d}r.] - [xsl] find the sum over distinct nodes - Sender
> > > blacklisted
> > >
> > >
> > >
> > > Hi,
> > >
> > > I have such an XML nodeset:
> > >
> > > <A>
> > >         <B>
> > >             <key>aa</key>
> > >             <value>
> > >                 <v1>aa</v1>
> > >                 <v2>110</v2>
> > >             </value>
> > >         </B>
> > >         <B>
> > >             <key>bb</key>
> > >             <value>
> > >                 <v1>bb</v1>
> > >                 <v2>10</v2>
> > >             </value>
> > >         </B>
> > >         <B>
> > >             <key>cc</key>
> > >             <value>
> > >                 <v1>cc</v1>
> > >                 <v2>60</v2>
> > >             </value>
> > >         </B>
> > > </A>
> > >
> > > <A>
> > >        <B>
> > >             <key>bb</key>
> > >             <value>
> > >                 <v1>bb</v1>
> > >                 <v2>40</v2>
> > >             </value>
> > >         </B>
> > >         <B>
> > >             <key>cc</key>
> > >             <value>
> > >                 <v1>cc</v1>
> > >                 <v2>200</v2>
> > >             </value>
> > >         </B>
> > > </A>
> > >
> > > <A>
> > >         <B>
> > >             <key>dd</key>
> > >             <value>
> > >                 <v1>dd</v1>
> > >                 <v2>60</v2>
> > >             </value>
> > >         </B>
> > > </A>
> > >
> > > what i try to do is to have the sum values over 'v2' values
> > > for distinct B nodes.(distinct means for different key values.)
> > > i would like to have such an XSL part:
> > >
> > > <xsl:for-each select="$ZZZ[generate-id(.)]/???">
> > >   <xsl:variable name="miktar" select="sum(v2)"/>
> > >   <fo:table-row>
> > >    <fo:table-cell>
> > >       <fo:block text-align="left" font-size="8pt" >
> > >            <xsl:value-of select='format-number($miktar,
> > > "###,###.00")'/>
> > >       </fo:block>
> > >    </fo:table-cell>
> > >   </fo:table-row>
> > >
> > > where $ZZZ is the nodeset which contrains the elements
> given above.
> > >
> > > thanks in advance.
> > > best regards..

Current Thread