Имея функцию, как это показано ниже:XSLT2.0 | Saxon HE | проходя сепаратор, как пары
<xsl:function name="fn:get-hierachy">
<xsl:param name="hierarchy" required="yes" as="node()"/>
<xsl:param name="separator0" required="no" as="xs:string"/>
<xsl:value-of select="$hierarchy/*" separator="$separator0"/>
</xsl:function>
Я получаю «separator0» в качестве разделителя для вывода, например.
<xsl:value-of select="fn:get-hierarchy($place, ' > ')"/>
результат:
Earth$separator0Africa$separator0Egypt
Я передаю свой собственный разделитель в качестве второго аргумента функции = ' > '
, но это игнорируется, и имя переменной используется вместо этого.
Желаемый результат: Earth > Africa > Egypt
Можно ли передать значение аргумента разделитель в качестве параметра?
Вы, кажется, наткнулись на саксонскую ошибку здесь: Saxon игнорирует 'xsl: function/xsl: param [@ required = 'no']', когда он должен отклонять его как ошибку. Всегда требуются параметры функции. –
Ошибка теперь исправлена, см. Https://saxonica.plan.io/issues/2448 (Saxon теперь сообщит об ошибке для вашей примерной функции). –
Благодарим за информацию. Хотя @Martin Honnen обеспечил рабочий процесс. –