xsl-list
[Top] [All Lists]

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

2004-11-03 02:31:38


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