Subject: Re: [xsl] xsl transform flatfile to xml From: "Joris Gillis" <roac@xxxxxxxxxx> Date: Thu, 17 Feb 2005 17:12:27 +0100 |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/> <xsl:key name="records" match="line" use="c"/>
add: <xsl:key name="o" match="o" use="concat(../c,.)"/>
replace with:<xsl:template match="/"> <results> <xsl:apply-templates select="output"/> </results> </xsl:template> <xsl:template match="output"> <xsl:for-each select="line[generate-id() = generate-id(key('records',c)[1])]"> <xsl:variable name="pos" select="position()"/> <comp id="{$pos}"> <c> <xsl:value-of select="c"/> </c> <xsl:call-template name="L2Interface"> <xsl:with-param name="parentid" select="$pos"/> </xsl:call-template> <xsl:call-template name="OSInterface"> <xsl:with-param name="parentid" select="$pos"/> </xsl:call-template> </comp> </xsl:for-each> </xsl:template> <xsl:template name="OSInterface"> <xsl:param name="parentid"/> <xsl:for-each select="key('records',c)[not(o = preceding::o)]">
<xsl:variable name="index" select="position()"/> <o array="{$index}" parent="{$parentid}"> <name> <xsl:value-of select="o"/> </name> </o> </xsl:for-each> </xsl:template> <xsl:template name="L2Interface"> <xsl:param name="parentid"/> <xsl:for-each select="key('records',c)[not(l = preceding::l)]"> <xsl:variable name="index" select="position()"/> <l array="{$index}" parent="{$parentid}"> <name> <xsl:value-of select="l"/> </name> </l> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] xsl transform flatfile to xml, viswanath | Thread | [xsl] RE: Display children of node , Adam J Knight |
Re: [xsl] XSLT and comma's in XML d, David Carlisle | Date | Re: [xsl] Adding element to xml sni, Joris Gillis |
Month |