[xsl] Counting number of characters of sibling text node

Subject: [xsl] Counting number of characters of sibling text node
From: "Filipe Correia" <filipe.correia@xxxxxxxxxxxxxxx>
Date: Wed, 22 May 2002 13:25:53 +0100
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


Current Thread