Как узнать, поддерживает ли libxslt EXSLT или нет
Я нахожусь на 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 ответ
Вот как я это исправил, ниже приведены шаги, 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" />
Спасибо за просмотр.