ОШИБКА: «Первый аргумент нестатической функции Java« оценивать »не является допустимой ссылкой на объект». при использовании TrasformFactory - PullRequest
2 голосов
/ 14 октября 2010

Я пытаюсь преобразовать xsl + xml в xml (для последующего преобразования в pdf с использованием библиотеки FOP). JDK, который я использую, составляет 1,5, и я никак не могу использовать другой (именно это использует компания, в которой я работаю). Я читал, что за ошибку ответственен xalan jar версии 1.5. Текст, который вызывает ошибку:

"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>

есть ли способ обойти его, не меняя банку? Есть ли способ написать это по-другому? или я использую неправильный синтаксис?

Спасибо за вашу помощь

1 Ответ

1 голос
/ 16 октября 2010

evaluate() является функцией расширения EXSLT.Он нестандартный, но многие процессоры XSLT, , включая xalan , поддерживают его.

Вы объявили префикс пространства имен dyn в своей таблице стилей, чтобы он правильно ссылался на динамический EXSLTпространство имен?

<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:dyn="http://exslt.org/dynamic"
                extension-element-prefixes="dyn">

...

</xsl:stylesheet>
...