Re: [xsl] xsl:variable and node list

Subject: Re: [xsl] xsl:variable and node list
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Fri, 15 Oct 2004 09:27:20 +0100
Hi Anton,

> Also, if you can be sure there are no other attributes that might
> contain $address, you can do this:
>
> <xsl:variable name="withaddress"
> select="tblMIMCompanies[contains(translate(@*,$upperCase,$lowerCase),
>                                  translate($address,$upperCase,$lowerCase))]"/>
>
> (that would include all elements where *any* attribute contains $address)

This is a gotcha. "translate(@*, $upperCase, $loweCase)" would only
test one attribute (the first in document order, which is
implementation-dependent for attributes). The translate() function
expects a string as its first argument; if you pass it a node-set then
it takes the string value of the first node from that node set.

What you mean is:

  tblMIMCompanies[@*[contains(translate(., $upperCase, $lowerCase),
                              translate($address, $upperCase, $lowerCase))]]

Cheers,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/

Current Thread