Re: [xsl] counting characters in an XML document

Subject: Re: [xsl] counting characters in an XML document
From: Steve.Ball@xxxxxxxxx
Date: Thu, 25 Oct 2001 07:20:59 +1000
Mike Brown wrote:
> 
> Tom Melkonian wrote:
> > Does anyone know how I can use XSL to count the number of characters in an
> > XML document. I want to process the XML so that, if there are less than a
> > certain amount of characters, a certain message gets printed. Another option
> > could be counting number of tags (elements)
> 
[...snip...]
> 
> So you can easily count element nodes:
> <xsl:value-of select="count(//*)"/>
> 
> Or all nodes:
> <xsl:value-of select="count(//node())"/>

Further example: to count the number of characters in the character data
of the document you could use:
<xsl:value-of select="string-length(/*)"/>

Eg.
<xsl:if test="string-length(/*) &gl; $minchars">
  <xsl:message>The document has less than <xsl:value-of
select="$minchars"/> characters.</xsl:message>
</xsl:if>

> But guessing at the original representation of the document as a string of
> characters, when you all have to go on is the node tree, is impossible to
> do with any accuracy.

Very true.  Bear in mind that an XML document's infoset can have many
physical representations.

Cheers,
Steve Ball

-- 
Steve Ball            |   XSLT Standard Library   | Training & Seminars
Zveno Pty Ltd         |     Web Tcl Complete      |   XML XSL Schemas
http://www.zveno.com/ |      TclXML TclDOM        | Tcl, Web Development
Steve.Ball@xxxxxxxxx  +---------------------------+---------------------
Ph. +61 2 6242 4099   |   Mobile (0413) 594 462   | Fax +61 2 6242 4099

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread