[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Identifying two tags that share some attribute names and values


Subject: Re: [xsl] Identifying two tags that share some attribute names and values
From: Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>
Date: Mon, 6 May 2002 09:12:04 +0100

Hi Zack,

> There's still a problem. when this recipe compares attributes, it
> sees line-breaks within an attribute and uses them in its
> comparison. So <a x="hi
> there"/> won't match <b x="hi there"/>.
>
> Is there any way around this?

You could normalize the attribute values before testing them. Use the
normalize-space() function -- that will turn all the newline (and tab)
characters into spaces, strip leading and trailing whitespace, and
collapse any sequence of spaces into a single space. To use this,
though, you have to change the test a bit since you can't take
advantage of the "existential semantics" of the equals operator. So
do:

  not($b/@*[name() = name(current()) and
            normalize-space() = normalize-space(current())])

Cheers,

Jeni

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


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread