This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: recursion
- To: "'Alex Albu'" <xsl at mailandnews dot com>, xsl-list at mulberrytech dot com, Oscar Gonzalez <oscar dot gonzalez at 100world dot es>
- Subject: RE: recursion
- From: Oscar Gonzalez <oscar dot gonzalez at 100world dot es>
- Date: Wed, 11 Oct 2000 17:00:33 +0200
- Reply-To: xsl-list at mulberrytech dot com
Thanks! It works perfect. Don't believe me, but I haven't found any similar
code in 5 hours of Internet searching... :-)
Thanks very much.
-----Original Message-----
From: Alex Albu [mailto:xsl@mailandnews.com]
Sent: miércoles, 11 de octubre de 2000 15:22
To: xsl-list@mulberrytech.com; oscar.gonzalez@100world.es
Subject: Re: recursion
Assuming that the root is identified by iParentID=0 and that in your example
nodes 2 and 4 should be at the same level (since they're both children of
1):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="html" indent="yes"/>
<xsl:key name="rowstruct" match="row" use="@iParentID"/>
<xsl:variable name="nbsp"> </xsl:variable>
<xsl:template match="/">
<!-- start with the root -->
<xsl:apply-templates select="//row[@iParentID=0]"/>
</xsl:template>
<xsl:template match="row">
<xsl:param name="indent"/>
<xsl:value-of select="$indent"/><xsl:value-of select="@ItemID"/><br/>
<xsl:apply-templates select="key('rowstruct', @ItemID)">
<xsl:with-param name="indent" select="concat($indent, $nbsp)"/>
</xsl:apply-templates>
</xsl:template>
</xsl:stylesheet>
Hope this helps,
Alex
----- Original Message -----
From: "Oscar Gonzalez" <oscar.gonzalez@100world.es>
To: <xsl-list@mulberrytech.com>
Sent: Wednesday, October 11, 2000 6:32 AM
Subject: recursion
> I have an XML structure like that:
>
> <row ItemID="1" iParentID="0" szSubject="Msg1"/>
>
> <row ItemID="2" iParentID="1" szSubject="Msg2"/>
>
> <row ItemID="3" iParentID="2" szSubject="Msg3"/>
>
> <row ItemID="4" iParentID="1" szSubject="Msg4"/>
>
> <row ItemID="5" iParentID="4" szSubject="Msg4"/>
>
> And I want an XSLT transformation to get this data in a hierarchical tree
> like that:
>
> 1
> 2
> 3
> 4
> 5
>
> Can you help me?
>
> Thanks in advance....
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list