Как узнать, поддерживает ли libxslt EXSLT или нет - PullRequest
0 голосов
/ 15 марта 2012

Я нахожусь на MacOSX 10.7, и у меня версия libxml2, как я вижу из libxml2 / xmlversion.h:

определить LIBXML_DOTTED_VERSION "2.7.3"

, что означает 2.7.3

Мое приложение также использует xslt, так как оно имеет процессор libxslt, который поставляется вместе с libxml2

часть файла может содержать математическую функцию, что-то вроде этого,

 <xsl:variable name="angle"
          select="math:atan2(30, 30)
              - math:atan2(30, 30)"/>

проходит через сайт http://www.exslt.org/howto.html там написано, что процессор xslt должен поддерживать функцию EXSLT,

У кого-нибудь есть идеи, как я могу это подтвердить?

1 Ответ

0 голосов
/ 17 марта 2012

Как я это исправил, ниже приведены шаги, 1 - Мне пришлось установить libxml2 и удалить ссылку на libxml2, которая была доступна через SDK, 2 - Скомпилируйте libxslt тоже, и не включайте то, что есть в SDK, 3 - В исходном коде перед применением таблицы стилей вызовите любую из этих функций

EXSLTPUBFUN void EXSLTCALL exsltMathRegister (void);
EXSLTPUBFUN void EXSLTCALL exsltSetsRegister (void);
EXSLTPUBFUN void EXSLTCALL exsltFuncRegister (void);
EXSLTPUBFUN void EXSLTCALL exsltStrRegister (void);
EXSLTPUBFUN void EXSLTCALL exsltDateRegister (void);
EXSLTPUBFUN void EXSLTCALL exsltSaxonRegister (void);
EXSLTPUBFUN void EXSLTCALL exsltDynRegister(void);

4 - вам может понадобиться изменить файл XSL, чтобы включить пространство имен для математики, и импортировать его

 xmlns:math="http://exslt.org/math"
  xmlns:jDouble="java.lang.Double"
  exclude-result-prefixes="v math"
  xmlns="http://www.w3.org/2000/svg"
  version="1.0">
    <xsl:import href="math.xsl" />

Спасибо за просмотр.

...