Re: [xsl] XPath without using variable ?

Subject: Re: [xsl] XPath without using variable ?
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 03 Jul 2004 08:35:12 -0400
At 2004-07-03 12:36 +0100, Arthur Maloney wrote:
How do specify an attribute in XPath?
@type is an attribute of an in-context element.

I've tried this, but it does not work.
<xsl:variable name="path" select="//hungarian/identifier[@name=@type]"/>

You are asking if the name attribute of identifier is equal to the type attribute of identifier.

When I Hard code e.g. identifier[@name='asp:DropDownList']   it works.
Also using a variable, as below it works.

What is XPath grammar to avoid having to use a variable?

There isn't anything in XPath, but there is something in XSLT since it looks like you are using XSLT.

I'm use this as a lookup (my problem: trying to avoid using variable 'test')
<xsl:variable name="test" select="@type"/>
<xsl:variable name="path" select="//hungarian/identifier[@name=$test]"/>

The current() function in XSLT returns the current node at the start of the XPath expression.

So select="//hungarian/identifier[@name=current()/@type] will give you the equivalent of the above, since in the above you are assigning to $test the type attribute of the current node at the start of the following expression.

But your "//" syntax above could be very wasteful depending on how you use it... if you have performance problems you should look into using keys.

I hope this helps.

..................... Ken

-- Public training 3 days XSLT & 2 days XSL-FO: Phoenix,AZ 2004-08-23 World-wide on-site corporate, govt. & user group XML/XSL training. G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Crane Softwrights Ltd. Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995) Male Breast Cancer Awareness Legal business disclaimers:

Current Thread