XSLT 3.0: условная настройка <xsl: аккумулятор>
Я обычно хотел бы установить разные <xsl:accumulator>
в ответ на результаты <xsl:if test="foo">
,
Проблема: <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
,
Иногда мои документы меняются, и мне нравится, как настроить на лету.