Re: [xsl] Unable to get text() of node

Subject: Re: [xsl] Unable to get text() of node
From: Kasimier Buchcik <K.Buchcik@xxxxxxxxxxxx>
Date: Mon, 23 Jan 2006 12:51:58 +0100
Hi,

On Mon, 2006-01-23 at 12:46 +0100, Geert Josten wrote:
> > A <xsl:copy-of select="."/> will select the concatenated text of all
> > descendant text-nodes in document-order; note the additional "don't" in
> > the result:
> > 
> > <output>"Johnny
> >     don't
> >     B.
> >     Good
> > "</output>
> 
> No, copy-of literally copies the selected nodes. If you select text(), it copies all text child 
> nodes of the current node. If you select ., it copies the current node itself, including its start 
> and end tag and all it's descendants, resulting in:
> 
> <output>"<foo>Johnny
>      <bar>don't</bar>
>      B.
>      <bar/>Good
> </foo>"</output>

True, I had that wrong.

> > MSXML does strip such whitespace text-nodes by _default_. So one might
> > want to use <xsl:strip-space elements="*"/> for compatibility with
> > the MSXML-XSLT engine.
> 
> Or just use <xsl:preserve-space elements="*" /> when using MSXSL to make it comply with the other 
> parsers.. :-)

Ah, good to know - thanks!

Regards,

Kasimier

Current Thread