This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Re: Re: RE: Counting number of characters of sibling text node
- From: Dimitre Novatchev <dnovatchev at yahoo dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 22 May 2002 12:08:17 -0700 (PDT)
- Subject: [xsl] Re: Re: Re: RE: Counting number of characters of sibling text node
- Reply-to: xsl-list at lists dot mulberrytech dot com
Thanks a lot Wendell!
I really learned something new.
Cheers,
Dimitre.
Wendell Piez <wapiez at mulberrytech dot com> wrote:
Dimitre, Mike:
At 02:15 PM 5/22/2002, Dimitre wrote:
> > > But if you do
> > >
> > > <xsl:variable name="this-and-preceding-siblings">
> > > <xsl:copy-of select=".|preceding-sibling::node()"/>
> > > </xsl:variable>
> > > <xsl:value-of
>select="string-length($this-and-preceding-siblings)"/>
> > >
> > > you may get better results.
> > >
> > No you won't. string-length() works on the first node in the
supplied
> > node-set.
...
>Both answers are not completely correct:
>
> -- Wendell's because he hasn't converted the RTF into a node-set
> before applying the string-length() function on it.
XSLT 11.1:
"A variable may be bound to a result tree fragment instead of one of
the
four basic XPath data-types.... A result tree fragment is treated
equivalently to a node-set that contains just a single root node.
However,
the operations permitted on a result tree fragment are a subset of
those
permitted on a node-set. An operation is permitted on a result tree
fragment only if that operation would be permitted on a string.... When
a
permitted operation is performed on a result tree fragment, it is
performed
exactly as it would be on the equivalent node-set."
> -- Mike's, because the variable contains not a (flat) node-set, but
a
>whole tree.
...which you can't query into (its being an RTF), but which you can get
the
length of (since it can be operated on as if node-set converted to a
string).
As for the technique, I've used it (though not this precise code) on
one-or-another SVG-generating stylesheet. It works fine in Saxon. :-)
Cheers,
Wendell
__________________________________________________
Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list