This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: algorithm for this hierarchy, anyone?
- From: "Joerg Heinicke" <joerg dot heinicke at gmx dot de>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 4 Feb 2002 12:21:26 +0100
- Subject: Re: [xsl] algorithm for this hierarchy, anyone?
- References: <6C927E5DB9915040A6EF446A431CA1A6023603@spdc01.softplumbers.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hello Mario,
I answered this question already yesterday, but it seems that this mail
hasn't gone over this list. I can't find my mail in the Mulberry mail
archive at sources.redhat.com, but it is in the ASPN archive:
http://aspn.activestate.com/ASPN/Mail/Message/XSL-List/1012271
Does this happen often? Really strange!
Joerg
----- Original Message -----
From: "Ruggier, Mario" <Mario.Ruggier@softplumbers.com>
To: <xsl-list@lists.mulberrytech.com>
Sent: Monday, February 04, 2002 12:02 PM
Subject: [xsl] algorithm for this hierarchy, anyone?
> Hello,
>
> I would like to convert the list of <obj> elements to
> the hierarchical XML output, as below, but am having
> problems identifying a workable algorithm. Can anyone
> suggest a simplest (or so ;-) algorithm for this?
>
> Mario Ruggier
> --
> SoftPlumbers SA, 26 rue Maunoir, CH-1207 Genève
> Mobile +41.79.240.8636 | Office +41.22.849.1038
>
>
> ===================================
> Input XML
> (<obj> elements may occur in any order)
> ("destination" depth of an <obj> is determined by the
> value of p.array/@size, and which could be anything)
> (no level jumps -- if there is a p.array[@size=n], then
> there will always be all intermediate occurances of
> p.array[size = n-1 ... 1 ], which will be composed of
> the corresponding number of "bottom" elements of p.array)
>
> <r>
> <obj>
> <p.array size="1">
> <v>en</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="1">
> <v>it</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="1">
> <v>fr</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="2">
> <v>one</v>
> <v>en</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="2">
> <v>uno</v>
> <v>it</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="2">
> <v>un</v>
> <v>fr</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="3">
> <v>two</v>
> <v>one</v>
> <v>en</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="3">
> <v>due</v>
> <v>uno</v>
> <v>it</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="3">
> <v>doo</v>
> <v>un</v>
> <v>fr</v>
> </p.array>
> </obj>
> <obj>
> <p.array size="4">
> <v>trois</v>
> <v>doo</v>
> <v>un</v>
> <v>fr</v>
> </p.array>
> </obj>
> </r>
>
> ===================================
> Desired Output
> (order of sibling <obj> elements is not important):
>
> <r>
> <obj name="en">
> <obj name="one">
> <obj name="two" />
> </obj>
> </obj>
> <obj name="fr">
> <obj name="un">
> <obj name="doo">
> <obj name="trois"/>
> </obj>
> </obj>
> </obj>
> <obj name="it">
> <obj name="uno">
> <obj name="due" />
> </obj>
> </obj>
> </r>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list