[oXygen-user] Author : Number of characters

I. Rogie
Mon May 10 10:18:10 CDT 2010


An xml example : 

<?xml version="1.0" encoding="UTF-8"?>
<NewsMLwk>
      <NewsItemId>WK20100201-01</NewsItemId>
      <OfInterestTo FormalName="WKF"/>
      <HeadLine/>
      <DateLine/>
      <body.content>
            <p>Par <aut/></p>
            <p>PARIS, 2010 -</p>
      </body.content>
</NewsMLwk>

With this xsl : 

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
             <xsl:text>The document contains </xsl:text>
                <xsl:call-template name="add">
                   
<xsl:with-param name="nodes" select="//p/text()"/>
                </xsl:call-template>
               <xsl:text> characters.</xsl:text>
    </xsl:template>

       <xsl:template name="add">
              <xsl:param name="sum" select="0"/>
              <xsl:param name="nodes" select="/.."/>
               <xsl:choose>
                    <xsl:when test="not($nodes)">
                    <xsl:value-of select="$sum"/></xsl:when>
                    <xsl:otherwise>
                        <xsl:call-template name="add">
                          <xsl:with-param name="sum" select="$sum +
string-length(normalize-space($nodes[1]))"/>
                          <xsl:with-param name="nodes"
select="$nodes[position() != 1]"/>
                        </xsl:call-template>
                    </xsl:otherwise>
                </xsl:choose>
       </xsl:template>
</xsl:stylesheet>



Le 10/05/10 17:06, « George Cristian Bina » <> a écrit :

> Dear Isabelle,
> 
> You can use also the XPath evaluation (see the XPath edit box in the
> toolbar). To get the normalized text from the document you can use
> 
> normalize-space(/*)
> 
> and for the number of characters in this text use
> 
> string-length(normalize-space(/*))
> 
> For understanding the problem you have with the stylesheet please post
> also a sample XML file together with the stylesheet that you use.
> 
> Best Regards,
> George




More information about the oXygen-user mailing list