Re: [xsl] Key functionality in XSL

Subject: Re: [xsl] Key functionality in XSL
From: Scott Trenda <Scott.Trenda@xxxxxxxx>
Date: Thu, 19 Nov 2009 10:58:31 -0500
It looks like you're trying to set up a multi-valued key, correct? I think you're confusing the XPath union operator (|) with the literal pipe character you're using later for the key value. So I think you're looking for this:

<xsl:key name="k1" match="ROW" use="concat(COLUMN[@NAME ='JOBCODE'], '|', COLUMN[@NAME = 'JC_CODE'])"/>

~ Scott

-----Original Message-----
From: Anil Kumar Veeramalli [mailto:anil.v@xxxxxxxxxxxxxxxxxxxxx] 
Sent: Thursday, November 19, 2009 1:41 AM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] Key functionality in XSL

 
Thanks David. I want to iterate with the Key.

I tried this way its not working.

<xsl:key name="k1" match="ROW" use="COLUMN[@NAME ='JOBCODE'] | COLUMN[@NAME = 'JC_CODE']"/> 


 <xsl:variable name="job_code" select="'P10'"/>
    <xsl:variable name="jc_code" select="'P10'"/>
    <xsl:variable name="keyvalue" select = 
"concat($job_code,'|',$jc_code)"/>

  <xsl:for-each select="key('k1',$keyvalue)">
      <!-- some output-->
   </xsl-for-earch>

is this not correct way of doing.

Thanks,
Anil

David Carlisle wrote:
>> <xsl:key name="k1" match="ROW" use="COLUMN[@NAME = 
>> 'JOBCODE'],COLUMN[@NAME = 'JC_CODE']"/> like this?
>>     
>
> use has to be a match pattern so you can't use , you can use | though.
>
> <xsl:key name="k1" match="ROW" use="COLUMN[@NAME = 
>  'JOBCODE'] | COLUMN[@NAME = 'JC_CODE']"/> 
>
>
> If you are using xslt2 you can use the alternative
> <xsl:key name="k1" match="ROW" use="COLUMN[@NAME =
> ('JOBCODE','JC_CODE')]"/>
>
> David
>
> ________________________________________________________________________
> The Numerical Algorithms Group Ltd is a company registered in England
> and Wales with company number 1249803. The registered office is:
> Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
>
> This e-mail has been scanned for all viruses by Star. The service is
> powered by MessageLabs. 
> ________________________________________________________________________

Current Thread