[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: unefficiate xpaths
> > <xsl:for-each > select="//clients/client[count(commissions/commission[earnerId > = //earners/earner[type = $rptType]/id]) = 0 and > <website=$prodClass)]"> > I wonder if you really mean "//earners". Are you interested only in earners that are descendants of the commission you are testing? In that case, use ".//earners". If you are interested in testing against all earners in the document, try setting a variable <xsl:variable name="e" select="//earners/earner[type = $rptType]/id"/> At present your performance is O(n**2), because //x typically involves a serial scan of the document. With the above change, it should become O(n) (assuming that type=$rptType selects a single element). For even faster performance, you can always replace //EXPR[VAL=C] with <xsl:key name="k" match="EXPR" use="VAL"/> then key('k', C) Michael Kay XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|