|
Subject: Re: [xsl] most efficient flat file listing to hierarchical From: George Cristian Bina <george@xxxxxxxxxxxxx> Date: Thu, 11 Jan 2007 15:50:37 +0200 |
<xsl:function name="f:baseFolder">
<xsl:param name="value" as="xs:string"/>
<xsl:variable name="tokens" select="tokenize($value, '/')"/>
<xsl:value-of select="$tokens[position()!=last()]" separator="/"/>
</xsl:function>
<xsl:key name="folder" match="item" use="f:baseFolder(.)"/> <xsl:template match="listing">
<dir>
<xsl:call-template name="list"/>
</dir>
</xsl:template> <xsl:template name="list">
<xsl:param name="folder" select="''"/>
<xsl:for-each select="key('folder', $folder)">
<xsl:choose>
<xsl:when test="key('folder', .)">
<dir name="{translate(substring-after(., $folder), '/', '')}">
<xsl:call-template name="list">
<xsl:with-param name="folder" select="."/>
</xsl:call-template>
</dir>
</xsl:when>
<xsl:otherwise>
<file name="{translate(substring-after(., $folder), '/', '')}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>Regards, George --------------------------------------------------------------------- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] most efficient flat file , James Fuller | Thread | Re: [xsl] most efficient flat file , Mukul Gandhi |
| Re: [xsl] most efficient flat file , James Fuller | Date | [xsl] Pivot Reports, Vitaliy Paykov |
| Month |