xsl-list
[Top] [All Lists]

Re: Problem with Sum function

2005-08-22 12:05:31
Well, the scenario is a little complicated. I have a stylesheet A with
an xml file A. Now, inside stylesheets A, I am displaying some
elements from an external XML file B, based on some values in
stylesheet A.

Eg:
XML A:

<root>
                <nodes>
                        <node>
                                <node--num>123</node-num>
                                <child-nodes>
                                        <child-node-num>456</child-node-num>
        <child-node-num>789</child-node-num>
                                
                                        
                                </child-nodes>
                        </node>
                        </nodes>
                        </root>

Now, my external xml file B has some additional values based on the
node-num and child-node-num from XML file A.

Eg: XML B would be like this:

<Bnode>
     <Bnode-num>123</Bnode-num>
             <Bchild-nodes1>
                      <Bchild-node1>
                                 <Bchild-node-num>456</Bchild-node-num>
                                  <Bchild-node-value>22</Bchild-node-value>
                      <Bchild-node1>
                        <Bchild-node1>
                                 <Bchild-node-num>789</Bchild-node-num>
                                  <Bchild-node-value>29</Bchild-node-value>
                      <Bchild-node1>
             
             </Bchildnodes1>

</Bnode>

Here is what I am doing in my stylesheet A. Now, I have some external
server calls made to match the node-num and child-node-num from XML A
with the correspondng values on XML B and display the
sum(Bchild-node-value).

        <xsl:template name="Bnode">
                <xsl:param name="mode"/>
                <xsl:for-each select="/root/nodes/node[child-nodes]">
                        <xsl:variable name="node-num">
                                <xsl:value-of select="node-num"/>
                        </xsl:variable>
                        <xsl:for-each select="./child-nodes/child-node-num">
                                <xsl:variable name="child-node-num">
                                        <xsl:value-of select="."/>
                                </xsl:variable>
                                <xsl:apply-templates select="<!--This is 
servercall-->">
                                                        <!--                    
                </xsl:for-each>
                </xsl:for-each>
                        </xsl:template>
        <xsl:template match="Bchild-node1">
        
                <xsl:value-of select="sum(Bchild-node-value)"/>
                
        </xsl:template>

Hope this is clear. Please let me know if there is any solution. 

Thank you for all your help. 

Meena

On 8/22/05, Mukul Gandhi <gandhi(_dot_)mukul(_at_)gmail(_dot_)com> wrote:
Please try

<xsl:template match="/node1">
  <xsl:value-of select="sum(childnode1a/childnode11a/value)" />
</xsl:template>

Regards,
Mukul

On 8/22/05, Meena Nanjundeswar <meenasargur(_at_)gmail(_dot_)com> wrote:
Hi:

My xml file looks like this:

<node1>
     <childnode1a>
            <childnode11a>
                    <value></value>
              </childnode11a>
      </childnode1a>
</node1>

There can be any number of <childnode11a> elements containing <value>.
Now, I am trying to compute the sum(value). Instead of giving me a
total sum of all the rows, it display the values individually. I
believe we have to use recursion. Can anyone please help me with this
problem?

Thanks

--~------------------------------------------------------------------
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>
--~--



--~------------------------------------------------------------------
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>
--~--




-- 
NorthWest Airlines
Office: 612-726-0793

--~------------------------------------------------------------------
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>