This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
algorithm for this hierarchy, anyone?
- From: "Ruggier, Mario" <Mario dot Ruggier at softplumbers dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Mon, 4 Feb 2002 12:02:09 +0100
- Subject: [xsl] algorithm for this hierarchy, anyone?
- Reply-to: xsl-list at lists dot mulberrytech dot com
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