[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: xsl:accumulator and temporary trees
Am 12.02.2020 um 15:01 schrieb Christophe Marchand cmarchand@xxxxxxxxxx:
Hello,
I use an accumulator to calculate height of block elements in a page.
My accumulator is defined like this :
B <xsl:accumulator name="height.counter" as="xs:double"
initial-value="0.0">
B B B <xsl:accumulator-rule match="page" select="2.3"/>
B B B <xsl:accumulator-rule match="li1" select="$value + 1.9"
phase="end"/>
B B B <xsl:accumulator-rule match="li2" select="$value + 1.8"
phase="end"/>
B B B <xsl:accumulator-rule match="li3" select="$value + 1.34"
phase="end"/>
B B B <xsl:accumulator-rule match="private:block" select="$value +
xs:double(./@height)" phase="end"/>
B </xsl:accumulator>
Modes are defined like this :
B <xsl:mode name="private:acc" on-no-match="shallow-skip"
use-accumulators="#all"/>
B <xsl:mode use-accumulators="#all"/>
For a special element, I calculate the block height, and I proceed
like this :
B B B <xsl:variable name="block" as="element(private:block)">
B B B B B <private:block height="{$height}"/>
B B B </xsl:variable>
B B B <xsl:apply-templates mode="private:acc" select="$block"/>
li1, li2 and li3, which are in source tree and processed in default
mode do modify accumulator value. But my accumulator is never
incremented when a private:block is processed.
Any suggestion will be much appreciated.
Accumulators, like keys, work on a tree, if you have some nodes in one
tree and the temporarily created element that is obviously in a
different tree then the accumulators of the temporarily created tree are
computed independently of the input tree.
I think you need to push the input through a mode that adds the
private:block elements and then you need to push that complete,
temporarily created tree through a new mode where you want to use the
accumulator.
|
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 |
|
|