This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Accessing text between nodes


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]