This is the mail archive of the mailing list .

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: The longest node in a node set

--- 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 &lt;
> following-sibling::element/@attr)]
> But how can I do that for the string-length(element).
> I tried //element[not(string-length(.) &lt;
> 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:



<xsl:stylesheet version="1.0"
exclude-result-prefixes="xsl myLengthCompare"
   <xsl:import href="maximum.xsl"/>
 <!-- This transformation must be applied to:
   <xsl:output omit-xml-declaration="yes"/>
    <xsl:template match="/">
    <xsl:variable name="vFunCompLength"
      <xsl:call-template name="maximum">
        <xsl:with-param name="pList" select="/*/*"/>
        <xsl:with-param name="pCMPFun" select="$vFunCompLength"/>
    <xsl:template match="myLengthCompare:*">
      <xsl:param name="arg1" select="/.."/>
      <xsl:param name="arg2" select="/.."/>
      <xsl:if test="string-length($arg1) 


Hope this helped.


Dimitre Novatchev. -- the home of FXSL

Do You Yahoo!?
Yahoo! Autos - Get free new car price quotes

 XSL-List info and archive:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]