RE: [xsl] xsl:variable and node list

Subject: RE: [xsl] xsl:variable and node list
From: <Jarno.Elovirta@xxxxxxxxx>
Date: Fri, 15 Oct 2004 11:20:21 +0300
Hi,

> Jarno.Elovirta@xxxxxxxxx wrote:
>
> >But, if you just want a set, then
> >
> >  <xsl:copy-of
> select="tblMIMCompanies[contains(translate(@building,$upperCas
> e,$lowerCase),translate($address,$upperCase,$lowerCase))
> >                                   and
> contains(translate(@number,$upperCase,$lowerCase),translate($a
> ddress,$upperCase,$lowerCase))
> >                                   and
> contains(translate(@street,$upperCase,$lowerCase),translate($a
> ddress,$upperCase,$lowerCase))
> >                                   and
> contains(translate(@town,$upperCase,$lowerCase),translate($add
> ress,$upperCase,$lowerCase))
> >                                   and
> contains(translate(@postcode,$upperCase,$lowerCase),translate(
> $address,$upperCase,$lowerCase))
> >                                   and
> contains(translate(@country,$upperCase,$lowerCase),translate($
> address,$upperCase,$lowerCase))
> >                                   and
> contains(translate(@address,$upperCase,$lowerCase),translate($
> address,$upperCase,$lowerCase))]"/>
> >
> >
> Jarno,
> shouldn't that be 'or' instead of 'and'?

Yes, of course it should be. And it should be xsl:variable element, not
xsl:copy. Friday, you know...

> 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,$lowe
> rCase),translate($address,$upperCase,$lowerCase))]"/>
>
> (that would include all elements where *any* attribute
> contains $address)

No, because the first argument to translate() is a string, thus when you give
it a node-set, it will always just take the first one.

Cheers,

Jarno - Velvet Acid Christ: Futile (Resisted mix by Funker Vogt)

Current Thread