Re: [xsl] as efficient as possible...

Subject: Re: [xsl] as efficient as possible...
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 02 Jul 2003 14:12:24 -0400
Corey,

This is a natural for keys. It is bound to speed up processing.

I am trying to get a list of the products that are listed in the <products>
node that are also in the <commission/product> node

<xsl:key name="products-by-id" match="products/product" use="id"/>


-- then when your context node is <client>,

select="key('products-by-id', commission/product/productId)"

should work. (Change the XPath to adjust if you need it from a different context node.)

(Why is the product ID called 'id' in one place but 'productId' in another? Should work anyhow.)

I hope that helps. Any good guide to XSLT should explain keys.

Cheers,
Wendell

At 01:06 PM 7/2/2003, you wrote:
XML
---
<earners>
   <earner>
      <id />
      <name />
   </earner>
</earners>
<clients>
   <client>
   <id>
   <name>
   <commissions>
      <commission>
         <id />
         <earnerId />
         <product>
           <productId />
           <rate />
         </prodcut>
      </commission>
    </commissions>
    <products>
       <product>
          <id />
          <name />
       </product>
    </products>
    </client>
</clients>


XSL ---

./products/product[id=../../commissions/commission[earnerId=$earnerId]/produ
ct/productId]


Problem ------- I am trying to get a list of the products that are listed in the <products> node that are also in the <commission/product> node... The way I have above works.. but it seems to be very slow... I am working with a large amount of data... but I was curious if there was a better way? $earnerId would be the current earner I am trying to calculate totals for... Thanks very much for any help!!


======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread