Subject: Re: element value based on attribute selection
From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx>
Date: Fri, 16 Mar 2001 10:54:11 +0000
|
Hi Dave,
> I want to select the value of the <parameter
> name="UserDN">wjohnson</parameter> out of all the
> <parameter> tags.
>
> <xsl:apply-templates select="//parameter???"/>
What is it about that parameter that you want to select on -
presumably its name attribute? You can get the value of the name
attribute with:
@name
Test whether it's the same as 'UserDN' with:
@name = 'UserDN'
and if you put that in a predicate (square brackets) it'll filter the
list of parameter elements accordingly:
//parameter[@name = 'UserDN']
You might find it better to step down to the parameter elements rather
than use // - otherwise the processor will hunt for parameter elements
all through the document when it doesn't really need to. Use:
/parameters/parameter[@name = 'UserDN']
If you have *lots* of parameter elements, and you're picking them out
by their name lots of times, you might find it helpful to define a
key so you can index into them:
<xsl:key name="parameters" match="parameter" use="@name" />
Then you can use:
key('parameters', 'UserDN')
instead.
[If you wanted to get it by position, use:
/parameters/parameter[1]
as it's the first parameter in the list.]
I hope that helps,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|