[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] flat XML to normal XML


Subject: [xsl] flat XML to normal XML
From: Borut Bolčina <bob@xxxxxxxx>
Date: Mon, 16 May 2005 12:24:45 +0200

Hello list,

I wish to transform an xml which has level information in each item (Table) to xml which has hierarchy as stated in those item's element.

<DataSet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <Table>
       <Level>1</Level>
       <Description>Cars</Description>
   </Table>
   <Table>
       <Level>2</Level>
       <Description>BMW</Description>
   </Table>
   <Table>
       <Level>3</Level>
       <Description>316</Description>
   </Table>
   <Table>
       <Level>3</Level>
       <Description>Z4</Description>
   </Table>
   <Table>
       <Level>2</Level>
       <Description>Citroen</Description>
   </Table>
   <Table>
       <Level>3</Level>
       <Description>C2</Description>
   </Table>
   <Table>
       <Level>3</Level>
       <Description>C4 coupe</Description>
   </Table>
   <Table>
       <Level>2</Level>
       <Description>Alfa Romeo</Description>
   </Table>
   <Table>
       <Level>3</Level>
       <Description>156</Description>
   </Table>
   <Table>
       <Level>1</Level>
       <Description>Motorcycles</Description>
   </Table>
   ...
   ...
</DataSet>


Target xml should look something like this:


<NewDataSet>
<Transport name="Cars">
<Brand name="BMW">
<Model>316</Model>
<Model>Z4</Model>
</Brand>
<Brand name="Citroen">
<Model>C2</Model>
<Model>C4 coupe</Model>
</Brand>
<Brand name="Alfa Romeo">
<Model>156</Model>
</Brand> </Transport>
<Transport name="Motorcycle">
...
</Transport>
</NewDataSet>



So, based on the Level element in the source xml for each Table entry, an appropriate subtree must be constructed and inserted in target xml. Levels are ordered following this pattern: 1,2,3,3,...,3,2,3,...,3,...,1,2,3,3,...,2,3,...,3


Busting my head over this for two days now, help appreciated. If only I could find the guy who created this "flat" xml...$%##@@!

--Bob


Current Thread
Keywords
xml