我通常会根据<xsl:accumulator>
的结果设置不同的<xsl:if test="foo">
s 。
问题:<xsl:accumulator>
必须是<xsl:stylesheet>
或<xsl:transform>
的孩子。
换句话说,累加器不能在可以执行条件测试的模板中。
问题:有没有办法根据源文档中的内容在运行时更改累加器规范?
累加器类似于:
<xsl:accumulator
name="f:accumulate-string-length"
post-descent="f:accum-string-length"
as="xs:integer"
initial-value="0">
<xsl:accumulator-rule
match="*"
new-value="$value + string-length()"/>
</xsl:accumulator>
我希望根据源文档在运行时更改@match=""
。
更新(对评论的回复):如果文档测试的结构为article/div
,我希望累加器@match为article/div
,如果文档测试的话要拥有section/div
结构,我希望累加器@match为section/div
。
有时我的文档会有所不同,并且喜欢随时调整。