[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Re: RE: Counting number of characters of sibling text node


Subject: Re: [xsl] Re: RE: Counting number of characters of sibling text node
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Wed, 22 May 2002 14:45:00 -0400

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


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================


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




Current Thread
Keywords