Рассмотрите возможность объединения совпадений строк с каналами |
и запускайте условное сопоставление с шаблоном вместо <xsl:if>
.Из-за совпадения fr и es in en, es, fr , добавьте условие or
для точного совпадения строки:
<xsl:template match="document[not(matches(@lanuage, 'fr|es') or
ends-with(@ref, 'fr.pdf|es.pdf'))
or @lanuage = 'en, es, fr']]">
<xsl:variable name="href" select="js:call($resource-to-collect,string(@ref))"/>
<a type="{name()}" href="{$href}">
<xsl:apply-templates select="@* except(@ref)"/>
<xsl:apply-templates select="node()"/>
</a>
</xsl:template>
XSLT Demo (удаляет неизвестный js:call
вызов)