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 -- George Cristian Bina <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger http://www.oxygenxml.com On 5/10/10 5:56 PM, Rogie Isabelle wrote: > Hello, > > Thanks for this idea! > I just add the function normalize-space to suppress space on this line: > <xsl:with-param name='sum' select='$sum + > string-length(normalize-space($nodes[1]))'/> > > I wanted only the number of characters in element p. So I change the > selection: > <xsl:with-param name='nodes' select='//p/text()'/> > But it doesn't work. The number of characters is 0 > > Regards, > > Isabelle Rogie > > -----Message d'origine----- > De : Radu Coravu [mailto:[email protected]] > Envoyé : lundi 10 mai 2010 11:18 > À : [email protected] > Objet : Re: [oXygen-user] Author : Number of characters > > Hi Isabelle, > > We have some plans to add actions in Oxygen for counting words and > characters. > In the meantime you can create an XSLT stylesheet with the following > content: > > <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='//text()'/> > </xsl:call-template> > <xsl:text> characters. > </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($nodes[1])'/> > <xsl:with-param name='nodes' > select='$nodes[position() != 1]'/> > </xsl:call-template> > </xsl:otherwise> > </xsl:choose> > </xsl:template> > </xsl:stylesheet> > > and apply it on the XML file. > If you need to count words, there is an XSLT stylesheet available here: > http://tech.groups.yahoo.com/group/dita-users/message/11854 > > Regards, > Radu > _______________________________________________ oXygen-user mailing list [email protected] http://www.oxygenxml.com/mailman/listinfo/oxygen-user
