-----Original Message-----
From: Michael Kay
I solved exactly this same problem for a client recently
(in a real application involving financial reporting up an
organization hierarchy).
It's a tricky one, but the final solution is remarkably
concise, at least in XSLT 2.0.
To give you a sketch of the solution: there is a recursive
named template that takes as input a set of elements and a
level number: the template calls xsl:for-each-group to do
one level of grouping, calling a function to calculate the
grouping key for level N; within the for-each-group it then
makes a recursive call-template to group the elements in
current-group() at level N+1. The function that calculates
the grouping key for level N reads the Nth XPath expression
from a configuration file, and calls
saxon:evaluate() to evaluate it.
I need a Jeni to translate that...
Are either of our Jeni's around today :-)
regards DaveP
--
DISCLAIMER:
NOTICE: The information contained in this email and any attachments is
confidential and may be privileged. If you are not the intended
recipient you should not use, disclose, distribute or copy any of the
content of it or of any attachment; you are requested to notify the
sender immediately of your receipt of the email and then to delete it
and any attachments from your system.
RNIB endeavours to ensure that emails and any attachments generated by
its staff are free from viruses or other contaminants. However, it
cannot accept any responsibility for any such which are transmitted.
We therefore recommend you scan all attachments.
Please note that the statements and views expressed in this email and
any attachments are those of the author and do not necessarily represent
those of RNIB.
RNIB Registered Charity Number: 226227
Website: http://www.rnib.org.uk
--~------------------------------------------------------------------
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>
--~--