Subject: [xsl] Re: The longest node in a node set From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Thu, 18 Jul 2002 11:25:08 -0700 (PDT) |
--- Antonio Fiol Bonnín <fiol at w3ping dot com> wrote: > Hello, > > I am trying to find an XPath expression that gives me the longest > element in a node set. > > I know how to do that for an attribute. e.g //element[not(@attr < > following-sibling::element/@attr)] > > But how can I do that for the string-length(element). > > I tried //element[not(string-length(.) < > string-length(following-sibling::element))] > > But this obviously does not work, because following-sibling::element > is > not an element or string, but a node-set. > > Any ideas? > > (I think this one is for Michael Kay... Am I wrong?) > > Thank you very much. > > > Antonio Fiol Hi Antonio, Just use -- simply, mechanically -- the maximum() function from FXSL: Sample source xml: ----------------- <t> <e1>abc</e1> <e2>a</e2> <e3>abcdef</e3> <e4>abcd</e4> <e5>ab</e5> <e6>abcde</e6> </t> Transformation: -------------- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:myLengthCompare="f:myLengthCompare" exclude-result-prefixes="xsl myLengthCompare" > <xsl:import href="maximum.xsl"/> <!-- This transformation must be applied to: testMaximum3.xml --> <myLengthCompare:myLengthCompare/> <xsl:output omit-xml-declaration="yes"/> <xsl:template match="/"> <xsl:variable name="vFunCompLength" select="document('')/*/myLengthCompare:*[1]"/> <xsl:call-template name="maximum"> <xsl:with-param name="pList" select="/*/*"/> <xsl:with-param name="pCMPFun" select="$vFunCompLength"/> </xsl:call-template> </xsl:template> <xsl:template match="myLengthCompare:*"> <xsl:param name="arg1" select="/.."/> <xsl:param name="arg2" select="/.."/> <xsl:if test="string-length($arg1) > string-length($arg2)">1</xsl:if> </xsl:template> </xsl:stylesheet> Result: ------ <e3>abcdef</e3> Hope this helped. ===== Cheers, Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL __________________________________________________ Do You Yahoo!? Yahoo! Autos - Get free new car price quotes http://autos.yahoo.com XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] The longest node in a nod, DPawson | Thread | [xsl] JavaScript and XSL Problems, Railan, Puneet Mr., |
[xsl] lookup table, Guy McArthur | Date | [xsl] JavaScript and XSL Problems, Railan, Puneet Mr., |
Month |