Subject: Re: [xsl] finding word count within a document, with xsl:accumulator From: "Mukul Gandhi mukulg@xxxxxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 22 Jan 2021 05:24:28 -0000 |
On Thu, Jan 21, 2021 at 5:36 PM Michael Kay mike@xxxxxxxxxxxx < xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > You would need to wrap the string in a document: > > <xsl:variable name="input-doc" as="document-node()"> > <xsl:document> > <xsl:value-of select="unparsed-text('input.txt')"/> > </xsl:document> > </xsl:variable> > Thanks, Mike for the answer. Taking clue from your suggestion, I could write the following stylesheet (named wc_2.xsl), that works for me. <xsl:stylesheet version="3.0" xmlns:xsl=" http://www.w3.org/1999/XSL/Transform" xmlns:xs=" http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs"> <xsl:output method="text"/> <xsl:variable name="input-doc" as="document-node()"> <xsl:document> <xsl:value-of select="unparsed-text('inp1.txt')"/> </xsl:document> </xsl:variable> <xsl:accumulator name="w" initial-value="0" as="xs:integer"> <xsl:accumulator-rule match="$input-doc/text()" select="$value + count(tokenize(.))"/> </xsl:accumulator> <xsl:template match="/" mode="x1"> <xsl:variable name="wordCount" select="$input-doc/accumulator-after('w') - $input-doc/accumulator-before('w')"/> <xsl:value-of select="$wordCount"/> </xsl:template> </xsl:stylesheet> For above to work, I need to invoke Saxon (I'm using version 10.3) with following options, -s:wc_2.xsl -xsl:wc_2.xsl -im:x1 (i.e, I also have to specify an initial mode for the XSLT transformation) -- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] finding word count within, Michael Kay mike@xxx | Thread | [xsl] Does the new structure includ, ian.proudfoot@xxxxxx |
Re: [xsl] finding word count within, Mukul Gandhi mukulg@ | Date | Re: [xsl] finding word count within, Mukul Gandhi mukulg@ |
Month |