This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: element value based on attribute selection
- To: "D. Bennion" <bennion3 at yahoo dot com>
- Subject: Re: [xsl] element value based on attribute selection
- From: Jeni Tennison <mail at jenitennison dot com>
- Date: Fri, 16 Mar 2001 10:54:11 +0000
- CC: xsl-list at lists dot mulberrytech dot com
- Organization: Jeni Tennison Consulting Ltd
- References: <20010315202852.32356.qmail@web10008.mail.yahoo.com>
- Reply-To: xsl-list at lists dot mulberrytech dot com
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