xsl-list
[Top] [All Lists]

RE: How to convert flat data to hierarchical data

2004-04-26 10:24:20
-----Original Message-----
From: Hansen, John [mailto:John(_dot_)Hansen(_at_)Aspect(_dot_)com]

Is there a simple stylesheet that will transform the flat data shown
below into the hierarchical form that is at the end of this email?  I

Hi,

Depends on what you call simple, doesn't it? I'd suggest something like:

<xsl:stylesheet ...>

<xsl:key name="by-parent" match="EmployeeGroup"
         use="Parent/@SK" />

<xsl:template match="/">
  <xsl:apply-templates select="EmployeeGroup[not(Parent/@SK)]" />
</xsl:template>

<xsl:template match="EmployeeGroup">
  <xsl:copy>
    <xsl:copy-of select="@*" />
    <xsl:copy-of select="*[not(name()='Parent')]" />
    <xsl:apply-templates select="key('by-parent',@SK)" />
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>

Beware though: untested.


HTH!

Cheers,

Andreas