Subject: RE: [xsl] converting flat xml data into heirarchy structure From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx> Date: Mon, 9 Feb 2004 10:58:28 +0100 |
> -----Original Message----- > From: David Buddrige > Hi David, > 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. > <snip /> I think, the best way to go about this is something like: <?xml version="1.0" encoding="UTF-8" ?> <xsl:template match="scopes"> <!-- apply templates on all scope elements with parent_id '0' --> <xsl:apply-templates select="scope[@parent_id='0']" /> </xsl:template> <xsl:template match="scope"> <!-- create a var to hold the current scope's id --> <xsl:variable name="vId" select="@id" /> <xsl:copy> <!-- copy attributes --> <xsl:apply-templates select="@*" /> <scopes> <!-- now apply templates on all scope elements with parent_id equal to current id --> <xsl:apply-templates select="//scope[@parent_id=$vId]" /> </scopes> </xsl:template> Caution: this solution would create empty 'scopes' elements when there are no 'scope' elements that satisfy the condition '@parent_id=$vId'. You could test for this with an xsl:if first. Hope this helps! Cheers, Andreas XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] converting flat xml data into, David Buddrige | Thread | RE: [xsl] converting flat xml data , Andreas L. Delmelle |
RE: [xsl] preceeding sibling on a f, marina | Date | Re: [xsl] Re: text() word lists, David Carlisle |
Month |