On Sat, Oct 17, 2020 at 1:22 PM Michael Kay mike(_at_)saxonica(_dot_)com <
xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:
With xsl:analyse-string you would still need a variable, but it could be a
simpler variable: for example it might just contain a "1" for a match, and
a "0" for a non-match; at the end you then need to count the ones and zeros
which you can do with string-length(translate(...)).
With your suggestion, below mentioned is my new XSLT stylesheet,
<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="xml" indent="yes"/>
<xsl:template match="/">
<xsl:variable name="temp_result" as="xs:boolean*">
<xsl:analyze-string
select="'abhello1cdehello2fghijklhello3hello4mhello5nhello6'"
regex="hello[1-9]">
<xsl:matching-substring>
<xsl:value-of select="1"/>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="0"/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:variable>
<result>
<yes count="{count(index-of($temp_result, true()))}"/>
<no count="{count(index-of($temp_result, false()))}"/>
</result>
</xsl:template>
</xsl:stylesheet>
The above stylesheet gives me the desired result.
But the above mentioned XSLT stylesheet, doesn't do exactly what you've
suggested.
I would preferably, wish to declare my XSLT variable as follows,
<xsl:variable name="temp_result" as="xs:string">
<xsl:analyze-string ...
</xsl:variable>
with an expectation that, content of this new kind of variable would be a
string (i.e, an atomic xs:string value) of 1 s & 0 s characters, on which I
could do string-length(translate(...)). Is this doable?
--
Regards,
Mukul Gandhi
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--