|
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,.)"/>
<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)]">
replace with: <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 |