[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] Find the node with maximum elements
Subject: RE: [xsl] Find the node with maximum elements From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sun, 4 Nov 2007 09:39:36 -0000 |
Yes, I read the requirement "return the node", not the example "return Honda and Mitsubishi". The solution *[count(*) = max(current()/*/count(*))] is easy to write, but it's very dependent on optimization. Saxon will move the condition max(current()/*/count(*)) out of the loop if it's written this way, but not if it's written *[count(*) = max(../*/count(*))]. Even if the max() is calculated outside the loop, you're visiting each node twice and calculating the "key" (count(*) twice for each node. Hence the slight preference for the sorting approach. The most efficient solution is probably a recursive function, but that's not the easiest to write. It really calls out for a higher-order function along the lines of saxon:highest(). Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Find the node with maximu, Mukul Gandhi | Thread | Re: [xsl] Find the node with maximu, Mukul Gandhi |
Re: [xsl] Find the node with maximu, Mukul Gandhi | Date | Re: [xsl] xsltproc and file names, Abel Braaksma |
Month |