If all the folders within a root folder have the same 'id' (what would be
the point of having the 'id' attribute on the child folder elements?) you
could do this:
<xsl:value-of select="sum(//folder[(_at_)id = 'dir0']/@files)"/>
If they dont then this would do the trick:
<xsl:value-of select="sum(//folder[(_at_)id = 'dir0']/@files) +
sum(//folder[(_at_)id
= 'dir0']//folder/@files)"/>
Im even more confused from your explanation than I was the first time around
but I think one of these will help you get to where you want to go.
Best of luck,
M.
----- Original Message -----
From: <annirack(_at_)shaw(_dot_)ca>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Wednesday, January 14, 2004 3:58 PM
Subject: Re: [xsl] recursive addition
The semantics are most definitely unclear but im assuming that you
know what
you want to gain out of adding dir2 and dir3.
I apparently didn't explain myself well at all. Sorry about that, here's
another attempt:
I have an XML file that represents a file system, and has a flat file
structure.
All folder nodes are siblings and all file nodes are children of a folder
node. To represent a folder being within another folder, a file node can be
a link to a folder node.
Each folder node has an attribute that indicates how many files it
contains.
I want to know how many files are in all the subfolders of a given folder.
I don't know if this is even possible in xsl 1.0
If it were not a flat file structure, it would seem easier... since I
could select all subfolders using "root/folder[(_at_)id="some id"]//folder" and
some form of recursive algorithm could probably handle the rest.
--Brendan
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list