|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: converting flat xml data into heirarchy structure
> -----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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








