[xsl] Re: xsl:key question

Subject: [xsl] Re: xsl:key question
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Tue, 10 Jul 2001 06:42:16 -0700 (PDT)
Kerin Cosford wrote:

> <Drug>
> 	<DrugCitation>
> 		<DrugCompanyList>
> 			<DrugCompany>
> 				<Company CDLID="18767">
> 					<CompanyCitation>
> 						<CompanyName>
> 							Johnson and Johnson
> 						</CompanyName>
> 					</CompanyCitation>
> 				</Company>
> 			</DrugCompany>
> 		</DrugCompanyList>
> 	</DrugCitation>
> 	<DrugDevelopmentList>
> 		<DrugDevelopment>
> 			<CompanyRef CDLID="18767"/>
> 		<DrugDevelopment>
> 	</DrugDevelopmentList>
> </Drug>
> 
> I need to have an xsl:key which will return the text within <CompanyName>
> when a CLID="" value of the <Company> element is passed to it (The value of
> the CDLID attribute is taken from the <CompanyRef> element).
> 
> How do I do this? All of the xsl:key examples I've come across only concern
> retrieving values from the same element that is queried. I'm sure this is a
> simple XPath expression, but, as I say, I just can't seem to work it out
> today.

Hi Kerin,

Use:
    <xsl:key name="kName" match="CompanyName" use="../../@CDLID"/>

or, if you really need just the text() children of "CompanyName":

    <xsl:key name="kNameText" match="CompanyName/text()" use="../../../@CDLID"/>

Cheers,
Dimitre Novatchev.


__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/

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


Current Thread