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


With a match on "/" you select the root of your document so to speak, that 
is not the same as your root element.
with the <xsl:value-of select="string-length(child::*[1])"/> You say that 
you want the string-length of the returned concatenated string of your 
first root element.
I don't think you need the [1] for if wellformed XML, your xml only has one 
root element.

So the following would suffice:

<?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(*)"/>
     </xsl:template>

</xsl:stylesheet>

cheers,

RH

At 08:38 AM 11/5/01 +0000, you wrote:
>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


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