Как использовать exsl:node-set из nodejs/node_xslt?

Я пытаюсь использовать функцию набора узлов EXSLT из nodejs через модуль node_xslt. Это простая оболочка для библиотеки libxslt, в которой есть поддержка EXSLT, насколько я понимаю. Тем не менее, любая ссылка на exsl:node-set приводит к тому, что я использую это.

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

<xsl:variable name="variable">
  <item />
  <item />
</xsl:variable>

    <xsl:variable name="result" select="exsl:node-set($variable)"/>

Любая это ошибка:

xmlXPathCompOpEval: набор узлов функции не найден Ошибка XPath: незарегистрированная ошибка времени выполнения функции: файл./JayDataContextGenerator_OData_V2.xslt строка 58 элемент for-each Не удалось оценить выражение 'select'.

ОБНОВЛЕНИЕ: Bahblah, автор плагина node_xslt обновил проект в github, поэтому вышеупомянутое преобразование выполняется без каких-либо дополнительных действий.

1 ответ

Решение

Наконец, выяснив это, изучив xsltproc.c, я должен был добавить следующие дополнения в node_xslt.c

наверх:

#include <libexslt/exslt.h>
#include <libexslt/exsltconfig.h>

И в строке 138, в FUNCTION(преобразование)

exsltRegisterAll();

Расширьте wscript так, чтобы:

obj.lib = ['xml2', 'xslt', 'exslt']

Затем мне пришлось перестроить node_xslt с

node-waf build

После этого exsl:node-set() работает как шарм.

Другие вопросы по тегам