Я хочу выбрать конкретный узел,
только если один из его дочерних элементов
значение находится в диапазоне. Диапазон
указывается с использованием параметров в
файл xsl.
Я также хочу, чтобы ограничение
узел не должен иметь paren
т
атрибут вместе с диапазоном
Используйте это выражение в качестве значения атрибута select
<xsl:apply-templates>
:
org[not(@parent) and chief >= $fromRange and not(chief > $toRange)]
В XSLT 2.0 допустимо иметь переменные / параметры в шаблоне сопоставления .
Следовательно, можно написать:
<xsl:template match=
"org[@parent or not(chief >= $fromRange ) or chief > $toRange]"/>
, таким образом, эффективно исключая все такие org
элементы из обработки.
Тогда шаблон, соответствующий узлу документа, просто :
<xsl:template match="/">
<orgo>
<xsl:apply-templates/>
</orgo>
</xsl:template>
Это лучше, чем решение XSLT 1.0, потому что оно более "push-style".