[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: problem with xsl:copy-of and counting lines
Subject: Re: problem with xsl:copy-of and counting lines
From: Andreas Peter <info@xxxxxxxxxx>
Date: Wed, 20 Jun 2007 13:29:11 +0200
|
Quoting David Carlisle <davidc@xxxxxxxxx>:
<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.
________________________________________________________________________
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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|