This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: counting characters in an XML document
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>, xsl-list-digest at lists dot mulberrytech dot com
- Subject: Re: [xsl] counting characters in an XML document
- From: Robert Stuart <Robert dot Stuart at NFER-NELSON dot co dot uk>
- Date: Mon, 5 Nov 2001 08:38:12 -0000
- Reply-To: xsl-list at lists dot mulberrytech dot com
That solution confuses me (Query at the end ...)
====================================
Date: Fri, 02 Nov 2001 07:35:38 +0000
From: Peter Flynn <peter@silmaril.ie>
Subject: Re: [xsl] counting characters in an XML document
Wendell Piez wrote:
> Mike,
>
> That XPath 2.0 addling is getting serious!
>
> Will this be happening to the rest of us?
>
> At 05:30 AM 10/25/01, Tom Melkonian wrote:
>
>> > Does anyone know how I can use XSL to count the number of
>> > characters in an
>> > XML document.
>>
>> If you're only interested in characters within text nodes, then
>>
>> count(string-length(/))
>
>
> Nope -- this will get you an error since the argument of count() must be
> a node-set, and string-length() returns a number.
>
> (Now, I know you know this, but I just don't want any credulous newbies
> to get confused.)
The following appears to work:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:value-of select="string-length(child::*[1])"/>
</xsl:template>
</xsl:stylesheet>
///Peter
=======
That solution confuses me - I would have expected descendants to work,
rather than child::*[1].
<xsl:value-of select="string-length(descendants)"/>
Can somebody comment on what is happening in this line?
Thanks
Robert Stuart
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list