RE: [xsl] converting flat xml data into heirarchy structure

Subject: RE: [xsl] converting flat xml data into heirarchy structure
From: David Buddrige <dbuddrige@xxxxxxxxx>
Date: Mon, 9 Feb 2004 17:38:54 -0800 (PST)
thanks heaps to everyone who replied on this thread. 
I'll give these ideas a shot. 8-)

regards

David.
--- Michael Kay <mhk@xxxxxxxxx> wrote:
> The general solution to this requirement is to use
> xsl:apply-templates
> to walk the tree recursively as you would normally
> do, but instead of
> selecting the physical children of a node, select
> the logical children,
> which you can do using
> 
> ../scope[@parent-id = current()/@id]
> 
> Michael Kay
> 
> > -----Original Message-----
> > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On
> Behalf Of 
> > David Buddrige
> > Sent: 09 February 2004 09:18
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] converting flat xml data into
> heirarchy structure 
> > 
> > 
> > Hi all,
> > 
> > I have a source document that is currently being
> > generated from an Oracle database - it is
> effectively
> > a table dump in xml format of the "scope" table.. 
> It
> > has the following structure.
> > 
> > <scopes>
> >   <scope id="1" parent_id="0" details="some
> data"/>
> >   <scope id="2" parent_id="1" details="more
> data"/>
> >   <scope id="3" parent_id="1" details="info"/>
> >   <scope id="4" parent_id="2" details="blah"/>
> >   <scope id="5" parent_id="1" details="foo"/>
> >   <scope id="6" parent_id="2" details="log"/>
> >   <scope id="7" parent_id="4" details="ogg"/>
> >   <scope id="8" parent_id="4" details="abcd"/>
> >   <scope id="9" parent_id="2" details="xyz"/>
> > </scopes>
> > 
> > What I want to do is to re-organise this data so
> that
> > the xml properly represents its structure.  It
> forms a
> > tree using the parent_id to identify the parent
> scope
> > in a tree structure.
> > 
> > What I want to wind up with from the above data is
> > this:
> > 
> > 
> > <scopes>
> >  <scope id="1" parent_id="0" details="some data"/>
> >  <scopes>
> >   <scope id="2" parent_id="1" details="more
> data"/>
> >    <scopes>
> >     <scope id="4" parent_id="2" details="blah"/>
> >      <scopes>
> >       <scope id="7" parent_id="4" details="ogg"/>
> >       <scope id="8" parent_id="4" details="abcd"/>
> >      </scopes>
> >     <scope id="6" parent_id="2" details="log"/>
> >     <scope id="9" parent_id="2" details="xyz"/>
> >    </scopes>
> >   <scope id="3" parent_id="1" details="info"/>
> >   <scope id="5" parent_id="1" details="foo"/>
> >  </scopes>
> > </scopes>
> > 
> > Where each <scope> record has an associated
> <scopes>
> > that lists each of the <scope>
> > records that are related to the first scope as a
> > child/parent in the following format:
> > 
> > 
> > <scope>
> >   <scopes>
> >     ...list of child scopes here...
> >   </scopes>
> > 
> > 
> > I have been trying to fathom how to go about this,
> > mucking around with parameters, trying to write
> some
> > kind of recursive routine that will automatically
> sort
> > the scope records into this format, but thus far
> have
> > not been successful.  Could anyone give any hints
> as
> > to how I would go about this?
> > 
> > thanks heaps
> > 
> > David Buddrige
> > 
> > 
> > 
> > __________________________________
> > Do you Yahoo!?
> > Yahoo! Finance: Get your refund fast by filing
> online. 
> http://taxes.yahoo.com/filing.html
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 


__________________________________
Do you Yahoo!?
Yahoo! Finance: Get your refund fast by filing online.
http://taxes.yahoo.com/filing.html

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread