Subject: RE: 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> </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> </node>
<node>test</node>
I'm going to use:
string(translate(., '  ', ''))
Any improvements, suggestions on that? I can't think of any other
whitespace (well, apparent whitespace) characters...
cheers
andrew
|