|
Subject: RE: [xsl] converting flat xml data into heirarchy structure From: "Andreas L. Delmelle" <a_l.delmelle@xxxxxxxxxx> Date: Mon, 9 Feb 2004 11:29:16 +0100 |
> -----Original Message-----
> From: Andreas L. Delmelle
>
<snip />
Oops, forgot a few details:
> <?xml version="1.0" encoding="UTF-8" ?>
>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
> <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>
>
</xsl:stylesheet>
On second thought, if the descending scope-elements *always* appear after
their parent, this will be better performance-wise (starting right before
creating the scopes-element in the second template above):
<xsl:if test="following::scope[@parent_id=$vId]">
<scopes>
<xsl:apply-templates select="following::scope[@parent_id=$vId]" />
</scopes>
</xsl:if>
Cheers,
Andreas
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] converting flat xml data , Andreas L. Delmelle | Thread | RE: [xsl] converting flat xml data , Michael Kay |
| RE: [xsl] Re: text() word lists, James Cummings | Date | Re: [xsl] Re: text() word lists, David Carlisle |
| Month |