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: Osman Çınar Eren <Cinar.Eren@xxxxxxxxxxxxx>
Date: Thu, 18 Nov 2004 12:15:19 +0200
hi,

it didnt work. i have such a template:
<xsl:key name="dkey" match="value" use="v1"/>

<xsl:template name="temp1">
		<xsl:param name="ZZZ" />

	     <xsl:for-each select="$ZZZ[generate-id(.)]">
		...
		<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