2014-10-02 4 views
2

Я обрабатываю XML-документ с помощью XSLT (XSLT 2, Saxon B 9.1.0.8), создавая вывод HTML. Я хочу поддержать тегВызов внешнего инструмента из XSLT

<markdown> 
    This is some `markdown` text 
</markdown> 

с семантикой, что содержание тега (которые должны анализироваться как есть, похожий на <pre> тег) будет фильтроваться через pandoc -f markdown -t html.

Как это сделать из таблицы стилей XSLT?

+2

http://www.saxonica.com/documentation/extensibility/functions/staticmethods.html + https://code.google.com/p/markdown4j/ или обычный внешний вызов процесса –

ответ

3

Saxon поддерживает ряд механизмов для написания функций расширения, документированные в http://www.saxonica.com/documentation/#!extensibility

Это все описывается в терминах вызова методов Java. Нет прямой поддержки для выполнения команды exec. Вы хотите написать оболочку Java вокруг java-метода Runtime.getRuntime() .exe() для захвата вывода в строку, чтобы вы могли вернуть результат строки.

+0

В настоящее время я использую ' saxonb-xslt' инструмент командной строки. Ваш ответ подсказывает, что мне пришлось бы заменить это на пользовательский код Java, верно? –

+0

@JoachimBreitner - Функция расширения (java wrapper для выполнения pandoc) будет единственным пользовательским java-кодом. Однако вам может потребоваться использовать Saxon-PE или EE вместо saxonb-xslt. Это было так давно, когда saxon-b/saxon-sa изменился на HE/PE/EE, я не помню, поддерживались ли функции расширения в b. –

+0

Спасибо за разъяснение. Я обязан использовать только бесплатное программное обеспечение (то есть, что находится в Debian). Я думаю, я могу решить его, используя шаг без предварительной обработки XSLT. –

Смежные вопросы