[oXygen-user] Author : Number of characters

George Cristian Bina
Tue May 11 00:56:34 CDT 2010


Hi Isabelle,

You can just use the following XPath expression:
sum(//p/string-length(normalize-space()))

The stylesheet works ok for me, it gives as output:
"The document contains 16 characters."

Best Regards,
George
-- 
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com

On 5/10/10 6:18 PM, I. Rogie wrote:
> 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