This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Algoritm for this Hierarchy?


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): 

<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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]