This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: counting characters in an XML document


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@zveno.com  +---------------------------+---------------------
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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]