Re: [xsl] Accessing text between nodes

Subject: Re: [xsl] Accessing text between nodes
From: "Thomas B. Passin" <tpassin@xxxxxxxxxxxx>
Date: Wed, 27 Jun 2001 11:29:50 -0400
Those pesky whitespace-only nodes again! Yes, and they're invisible in
browser output but you can get a surprise when you look at the actual file
in an editor.  Of course, whether there are any whitespace nodes depends on
the details of how the source is written (like, is "Hello" on its own
line?).

You could always apply normalize-space() to clean up the result.


Mike Kay said that text()[1] would get only the first node, but I just tried
that and all the other whitespace-only nodes still appear in the output,
using either msxml3 or saxon.

Conversely, if you added some more text within <Node> after those <SubNode>
elements, text() does not get the added text.  text()[3] does get that added
text, though (text()[2] gets whitespace). That's with saxon, msxml3 returns
nothing for text()[3].  Hmm - Mike, which one is right (it must be saxon!)?

Thanks for being more careful about it.

Cheers,

Tom P

[Rob Lugt]

> Thomas B. Passin wrote:-
>
> > Use <xsl:value-of select='text()'/> instead.  This will select the text
> node
> > that belongs to a Node element.  The only text element of Node is
"Hello",
> > and that is what displays.
> >
>
> Sorry to correct you Tom, but in the example the Node element contains 3
> child text nodes ("Hello" and 2 whitespace-only nodes).
>
> > > <Node>Hello
> > > <SubNode>Hello Here!</SubNode>
> > > <SubNode>Hello Here!</SubNode>
> > > </Node>
>
> ~Rob
>



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


Current Thread