Quoting David Carlisle <davidc(_at_)nag(_dot_)co(_dot_)uk>:
<xsl:template match="block" mode="variable">
<xsl:copy-of select="."/>
<xsl:variable name="countlines" select="string-length(/) -
string-length(translate(/,'
',''))" />
<xsl:value-of select="."/>
</xsl:template>
is the same code you used to count the whole document, just replace /
(twice) by . if you want to just use the string value of the current
element rather than the whole document. If you want to return a result
tree fragment with that number as the string value of that number you
then want to use $countlines not . in teh final value of, although of
course as the variable is only used once you don't really need it.
The first copy-of will copy the input into this result tree fragmnent
which I assume you don't want, so
<xsl:template match="block" mode="variable">
<xsl:value-of elect="string-length(.) -
string-length(translate(.,'
',''))" />"/>
</xsl:template>
David
________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs.
________________________________________________________________________
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
Thanks to David and Michael! That works :-)
But if I want to use the value of the string for other operations I
have to declare a global variable, right? I want to declare the
variable in an external variables.xsl file. My idea was to create the
variables.xsl => xsl:apply-templates which points to the source
document => count the lines => use the resulting variable in my
stylesheet document. So far my idea :-)
Is it possible to match the node of an external document like
<xsl:template match="document('variables.xsl')/block"> or something like this?
The variables.xsl file looks like this:
<xsl:template match="block">
<xsl:variable name="countlines">
<xsl:apply-templates/>
<xsl:value-of select="string-length(.) -
string-length(translate(.,'
', ''))"/>
</xsl:variable>
</xsl:template>
Thanks so much for your patience :-) I am just waiting for Michael
Kays two books about XPath 2.0 and XSLT 2.0 for helping me with the
theme.
Andreas
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--