Subject: Re: New twist: eliminating nodes with duplicate content, case-insensi tive From: Phil Lanch <phil@xxxxxxxxxxxxxxx> Date: Tue, 07 Dec 1999 12:06:19 +0000 |
David Carlisle wrote: > > > The code below does it in one pass (it was indeed a brave assertion!), > > I suspect that was multiple passes by Michael's counting (as is the code > below) I don't think that you can do it in a single xpath expression, > for the reasons given, but I don't think you need to use explicit > recursion. Isn't this more or less what is wanted? I thought Michael meant it couldn't be done without piping the source through 2 stylesheets. - Anyway, your solution is much more readable than mine, and more efficient at least until XSL processors are smart enough to optimize that recursion into iteration - which I assume they aren't yet. > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="1.0" > > > > <xsl:variable name="up" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/> > <xsl:variable name="lo" select="'abcdefghijklmnopqrstuvwxyz'"/> > > <xsl:template match="/"> > <xsl:apply-templates select="//handle"/> > </xsl:template> > > <xsl:template match="handle"> > <xsl:if test="not(following::handle[translate(.,$up,$lo)= > translate(current(),$up,$lo)])"> > <xsl:copy-of select="."/> > </xsl:if> > </xsl:template> > > </xsl:stylesheet> > > Of course the above probably results in the current node being downcased > multiple times and it would be better anyway not to use > current() at all and just put the lowercase of the current node value > into a variable. -- bahhumbug phil *witness relocation program alumnus* XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: New twist: eliminating nodes wi, David Carlisle | Thread | Oracle Parser in Cocoon, Paul Johnson |
RE: Combining two test using the "a, Kay Michael | Date | SV: Combining two test using the "a, Tony Fabian |
Month |