Re: [xsl] checking if an element starts-with a certain string using keys

Subject: Re: [xsl] checking if an element starts-with a certain string using keys
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 14 Feb 2005 10:17:17 GMT
    Thanks for the answer, it works partly. I forgot to tell that the code 
    in the structure file can also be longer: for example:
    
    <field>
        <code>PYTT/030/040</code>
        <element/>
    </field>
    <field>
        <code>PYTT/030/040/050</code>
        <element/>
    </field>
    
    There should be a longest match. So the following element should match 
    the second field:
    <org code="PYTT/030/040/050/060">
    

If you want to use keys you should probably use a key of

match="field" use="code"

and then just (in this example) use
select="
  key('c','PYTT') |
  key('c','PYTT/030') |
  key('c','PYTT/030/040') |
  key('c','PYTT/030/040/050/060')
 "

you could use a tokenize() extension function or a recursive template to
split up your org/@code attribute inorder to find all teh strings to
look up. this means that you only do the substring handling once not
while testing each field

David


________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread