Subject: Re: [xsl] Nesting XPath predicates From: Nathan Potter <ndp@xxxxxxxxxxxxxxxxxxxx> Date: Thu, 24 Apr 2008 12:41:07 -0700 |
On Thu, Apr 24, 2008 at 09:17:05AM +0100, Andrew Welch wrote:On 24/04/2008, Liam Quin <liam@xxxxxx> wrote:Easier might be <xsl:template match="dataset"> <xsl:variable name="sn" select="serviceName" /> <xsl:value-of select="//service/[@name = $sn]/@base" /> </xsl:template>
It is easier to use a variable when you're learning, but this is what the current() function is for:
Good point.
//service[@name = current()/serviceName]
That will work in the given example, but stops working if you put
that line inside a for-each... or more precisely works differently :-)
so it's fragile, and not a technique that people can build on well.
[...]Ultimately though, you should use a key here: <xsl:key name="service-by-name" match="service" use="@name"/>key('service-by-name', serviceName)
That's probably a better solution.
Best,
Liam
-- Liam Quin, W3C XML Activity Lead, http://www.w3.org/People/Quin/ http://www.holoweb.net/~liam/ * http://www.fromoldbooks.org/
============================================================ Nathan Potter Oregon State University, COAS ndp at coas.oregonstate.edu 104 Ocean. Admin. Bldg. 541 737 2293 voice Corvallis, OR 97331-5503 541 737 2064 fax
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Nesting XPath predicates, Andrew Welch | Thread | Re: [xsl] Nesting XPath predicates, Florent Georges |
RE: [xsl] fallback to a default tem, Jim Earley | Date | RE: [xsl] fallback to a default tem, Daly, April |
Month |