Hi,
because the 'preceding::' axis contains nodes as they reside in the
document (not as they occur in a node-set), you cannot use that axis to
determine uniqueness of the 2nd degree.
Tempore 07:58:45, die 02/16/2005 AD, hinc in
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com scripsit viswanath
<murugappan(_dot_)viswanath(_at_)megasoft(_dot_)com>:
<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:for-each select="key('records',c)[generate-id(o)
=generate-id(key('o',concat(c,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>
regards,
--
Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041)
"Φιλήκοον ειναι μαλλον η φιλόλαλον" -
Κλεόβουλος
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--