Subject: [xsl] Re: help on removing duplicates From: "lars" <lars@xxxxxxxxxx> Date: Fri, 21 Jan 2005 12:29:12 -0600 |
> i want to get a list 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-X > ... ... > as i don't have tight performance problems i don't need to resort to > muenchian methods, But they do work well so why not use them if you can? They make a good pattern, which, if you master it, can be used in many situations (until XSLT 2.0 becomes widely available!) But if you want to avoid key() and generate-id() and don't care about performance: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <xsl:apply-templates select="xml/el[not(node = following::el[parent::xml]/node)]" /> </xsl:template> <xsl:template match="/xml/el"> <xsl:variable name="base" select="node" /> <xsl:text> </xsl:text> <xsl:value-of select="$base" /> <xsl:text>-</xsl:text> <xsl:apply-templates select="/xml/el/rel/el[../../node = $base and not(node = following::el[../../node = $base and node = current()/node])]" /> </xsl:template> <xsl:template match="/xml/el/rel/el"> <xsl:value-of select="node" /> </xsl:template> </xsl:stylesheet>
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Document function handlin, Pieter Reint Siegers | Thread | [xsl] Comparing nodes in XPath, António Mota |
Re: [xsl] Document function handlin, Colin Paul Adams | Date | [xsl] Comparing nodes in XPath, António Mota |
Month |