RE: [xsl] Using normalize-space to test for characters in text nodes

Subject: RE: [xsl] Using normalize-space to test for characters in text nodes
From: "Andrew Welch" <ajwelch@xxxxxxxxxxxxxxx>
Date: Wed, 3 Nov 2004 09:31:38 -0000
> > Consider the following xml snippet:
> >
> > <root>
> >   <node> </node>
> >   <node>&#160;</node>
> > </root>
> >
> > normalize-space() returns false for the first node, and
> true for the
> > second.  I would have expected both to return false - why is the
> > second node considered different from the first?
>
> Because XPath <http://w3.org/TR/xpath#function-normalize-space> says:
>
>   Whitespace characters are the same as those allowed by the
> S production in XML
>
> And XML <http://www.w3.org/TR/REC-xml/#NT-S> says:
>
>   [3]   	S	   ::=   	(#x20 | #x9 | #xD | #xA)+
>
> thus NO-BREAK SPACE is not whitespace.


Thanks Jarno, true enough.

So to return the third node from the following:

  <node> </node>
  <node>&#160;</node>
  <node>test</node>

I'm going to use:

string(translate(., ' &#160;', ''))

Any improvements, suggestions on that?  I can't think of any other
whitespace (well, apparent whitespace) characters...

cheers
andrew

Current Thread