xsl-list
[Top] [All Lists]

RE: transforming flat data to hierarchical data. Recursion??

2003-06-06 01:37:29
Hi,

I think I need to use recursion but I cannot get the output I want.
I tried replacing every /Next/@id with its matching element 
using a xsl:key 
on the PAGE elements based on id
but that only replaces on one level and since I don't know 
the lenght of the 
linked lists I cannot use this principle.

Does anybody have an idea how to solve this
I'm not really that familiar with xslt

How about

<xsl:key name="id" match="PAGE" use="@id" />
<xsl:key name="idref" match="Next" use="@id" />

<xsl:template match="Pages">
  <xsl:copy>
    <xsl:apply-templates select="PAGE[not(key('idref', @id))]" />
  </xsl:copy>
</xsl:template>

<xsl:template match="Next">
  <xsl:copy>
    <xsl:apply-templates select="key('id', @id)" />
  </xsl:copy>
</xsl:template>

<xsl:template match="@*|node()">
  <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>

Cheers,

Jarno - Dulce Liquido: Pissed Off

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



<Prev in Thread] Current Thread [Next in Thread>