Я пытаюсь преобразовать xsl + xml в xml (для последующего преобразования его в pdf с использованием библиотеки FOP). JDK, который я использую, составляет 1,5, и я не могу использовать другое (именно это использует компания, в которой я работаю). Я прочитал, что jar 1.5 jar 1.5 является ответственным за ошибку. Текст, который вызывает ошибку является:ОШИБКА: «Первый аргумент нестатической функции Java« оценка »не является допустимой ссылкой на объект.» при использовании TrasformFactory
"dyn:evaluate($xpath)"/>
в:
<xsl:variable name="paramName" select="@name"/>
<xsl:variable name="xpath"
select="concat('/doc/data/',$paramName)" />
<fo:inline>
<xsl:value-of select="dyn:evaluate($xpath)"/>
</fo:inline>
</xsl:template>
есть способ Arround него, не меняя банку? Есть ли способ написать это по-другому? или я использую неправильный синтаксис?
Спасибо за вашу помощь
Извините, что реанимировал эту мертвую тему; У меня такая же проблема. Правильное объявление пространства имен не разрешает проблему FWIW. –
@ Laird Nelson - Я просто (ре) подтвердил, что он работает для меня. Вы получаете ошибку или просто не ожидаете результата? Дважды проверьте, что у вас также есть 'extension-element-prefixes =" dyn "' и что ваше выражение XPath верное. Может быть, разместите небольшой пример и задайте вопрос, чтобы получить вторую пару глаз? –
Проблема заключается в том, что реализация javax.xml.transform.TransformerFactory по умолчанию создает «Transformer», который под крышками использует Xalan XSLTC _compiler_, а не _interpreter_, а 'dyn' в этом случае не поддерживается. См. Https://xalan.apache.org/xalan-j/extensions_xsltc.html#exslt_ext. –