Subject: RE: flat XML to normal XML
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 16 May 2005 15:42:09 +0100
|
For a worked solution to a very similar problem (using XSLT 2.0) see:
http://www.idealliance.org/proceedings/xml04/papers/111/mhk-paper.html
Michael Kay
http://www.saxonica.com/
> -----Original Message-----
> From: Borut Bolcina [mailto:bob@xxxxxxxx]
> Sent: 16 May 2005 11:25
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: flat XML to normal XML
>
> 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
|