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

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


Subject: Re: [xsl] Counting number of characters of sibling text node
From: Oleg Tkachenko <olegt@xxxxxxxxxxxxx>
Date: Wed, 22 May 2002 15:51:39 +0200

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




Current Thread