Subject: Re: [xsl] help on removing duplicates From: "jvalentin" <jvalentin@xxxxxxxxxx> Date: Fri, 21 Jan 2005 14:26:12 +0100 (CET) |
from this xml: <xml> <el> <node>A</node> <rel> <el><node>X</node></el> </rel> </el> <el> <node>A</node> <rel> <el><node>X</node></el> </rel> </el> <el> <node>A</node> <rel> <el><node>Y</node></el> </rel> </el> <el> <node>B</node> <rel> <el><node>X</node></el> </rel> </el> <el> <node>B</node> <rel> <el><node>Z</node></el> </rel> </el> <el> <node>B</node> <rel> <el><node>Z</node></el> </rel> </el> <el> <node>C</node> <rel> <el><node>Z</node></el> </rel> </el> </xml> i want to get a list -for each elect (el)- of the first level nodes (A, B, C..) with their related nodes (X, Y, Z...) but removing duplicates, so i'd like to get: A-XY B-XZ C-Z ... i am using this duplicate removing xsl script: <xsl:template match = "/"> <!-- predicate to avoid node ABC... group repetition --> <xsl:apply-templates select="/xml/el[not(node=following::node)]"> <xsl:sort select="node" /> </xsl:apply-templates> </xsl:template> <xsl:template match="el"> <xsl:value-of select="node">-<xsl:call-template name="XXX"><xsl:with-param name="node" ><xsl:value-of select="node" /></xsl:with-param></xsl:call-template> </xsl:template> <xsl:template name="XXX"> <!-- when using: <xsl:for-each select="/xml/el[node=$node]/rel/el/node[not(text()=following::text())]"> the first predicate is not accounted for, and all XYZ are visible and i get this: A-Y B-X C-Z and if i use this axe: <xsl:for-each select="/xml/el[node=$node]/rel/el/node[not(text()=following-sibling::text())]"> i get again all with duplicates: A-XXY B-XZZ C-Z when i use no last predicate: <xsl:for-each select="/xml/el[node=$node]/rel/el/node"> intra-class ABC duplicates remain: A-XXY B-XZZ C-Z --> <xsl:value-of select="text()"> </xsl:for-each> </xsl:template> any idea on what's the reason for this behaviour of predicate [node=$node] (i tried keys with the same result) thanks > Hi Juan, > >>as i don't have tight performance problems i don't need to resort to >>muenchian methods, any idea on how to solve this ? > > But with keys, you consider only the first member in a key list. > Duplicates removed. > > Cheers, > > Juergen
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] help on removing duplicat, Juergen | Thread | Re: [xsl] help on removing duplicat, Juergen |
RE: [xsl] Look ahead in xslt, Michael Kay | Date | [xsl] free XMLSpy version and xalan, Katharina Kreis |
Month |