This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Counting number of characters of sibling text node
- From: Oleg Tkachenko <olegt at multiconn dot com>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Wed, 22 May 2002 15:51:39 +0200
- Subject: Re: [xsl] Counting number of characters of sibling text node
- Organization: Multiconn International
- References: <200205221325530641.00F7436B@mail.paradigmaxis.pt>
- Reply-to: xsl-list at lists dot mulberrytech dot com
Hello!
Why not just
<xsl:value-of select="string-length() +
string-length(preceding-sibling::text())"/> ?
Filipe Correia wrote:
> What I want to do is to count the number os characters in a text node and all previous text nodes children of the current text node's parent.
>
> parent
> |
> ----------------------------
> | | | |
> text1 <br/> text2 <br/>
>
>
> When having text1 has the current node my template would return the number of characters of text1 but when having text2 has the current node my template would return the sum of number of characters of text1 with number of characters of text2.
>
> I've tried using the following template:
>
> <xsl:template match="text()" mode="getStrLen">
> <xsl:variable name="pastTxtLen"><xsl:apply-templates select="preceding-sibling::text()[1]" mode="getStrLen"/></xsl:variable>
> <xsl:value-of select="string-length($pastTxtLen) + string-length(.)" />
> </xsl:template>
>
> I get it's result by doing:
> <xsl:variable name="pastTxtLen"><xsl:apply-templates select="." mode="getStrLen"/></xsl:variable>
>
> Doing it this way I get the rong result.
> For the example above, when I have text1 has the current node it works fine(the number of characters of text1 only is returned) but when I have text2 has the current node a rong result.
>
> Any suggestions?
>
> Filipe
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
--
Oleg Tkachenko
Multiconn International, Israel
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list