Я пытаюсь запустить скрипт тянуть комбинацию из последних 2 0 от поля XML и заменить их случайное число в диапазоне от 10 до 60.XPST0017 Xpath ошибка синтаксиса
однако следующая ошибка появилась
XPST0017: XPath ошибка синтаксиса в полукокса 15 по линии 31 в {randomnr: RAND()}:
не удается найти соответствующий функцию 0-аргумент с именем {URI: nonexistant} рандов()
какой час Я делаю неправильно? Я знаю, что все, кроме работы javascript, работает
<xsl:stylesheet version="2.0" xmlns:randomnr="uri:nonexistant" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:package="info:srw/extension/13/package-v1.0" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:saxon="uri:http://saxon.sf.net/">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<saxon:script language="JavaScript" implements-prefix="randomnr">
<![CDATA[
function rand()
{
return"" + Math.floor((Math.random() * 60) + 10);
}
]]>
</saxon:script>
<xsl:variable name="basename">
<xsl:call-template name="substring-before-last">
<xsl:with-param name="string1" select="$filename" />
<xsl:with-param name="string2" select="'00'" />
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$basename" />
<xsl:value-of select="randomnr:rand()"/>
Мне неизвестен элемент 'saxon: script', а пространство имен Saxon extension по-разному отличается от используемого вами. Я не думаю, что у Saxon 9 есть поддержка для звонка в Javascript вообще. Если вам нужен случайный номер, вы можете позвонить в Java, если он поддерживается, или использовать функцию XPath 3.1 для этого, если она поддерживается. –
См. Http://saxonica.com/html/documentation/extensions/instructions/ для определенных элементов расширения, нет элемента 'saxon: script'. –
, по-видимому, я смотрел более старую версию документации по саксону , в которой были элементы верхнего уровня саксон: скрипт. – thomas