Программно применить XSL-преобразование вне браузера - PullRequest
2 голосов
/ 30 сентября 2011

У меня есть данные XML, которые я хочу отображать в браузере с помощью XSL-преобразования, а также компилировать с помощью XeLaTeX.Внутри XML-файла я установил таблицу стилей для браузера, и в настоящее время, чтобы получить вывод LaTeX, мне нужно перейти в XML-файл, изменить его, открыть в браузере, скопировать в файл, сохранитьфайл и запустите XeLaTeX против него.

Вместо этого я хотел бы оставить файл XML, связанный с таблицей стилей XSLT, который преобразует его в XHTML, и просто иметь скрипт сборки, который будет:

  1. Примените файл преобразования LaTeX XSL к XML-файлу, записав результат в файл .tex.
  2. Запустите XeLaTeX для него.
  3. Запустите XeLaTex для него еще раз (документ требуетвторой проход).
  4. Очистить файлы журналов и т. д., если не указано иное.

Я знаю, как это сделать # 2- # 4.Каков наилучший способ для достижения № 1?Например, есть ли рецепт Python3 для применения XSL-преобразования к документу XML?

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

Если ваша таблица стилей написана на XSLT 1.0, вы можете использовать от libxslt до lxml (привязки libxml2 & libxslt python). Ищите lxml примеров (ссылка на веб-кеш Google, потому что на http://lxml.de)

нет реальной страницы)
1 голос
/ 02 октября 2011

Следуя указаниям @Phillip Kovalev, я разработал следующий код Python3:

from lxml import etree 
def transform(xsltpath:str, xmlpath:str):
    return etree.XSLT(etree.parse(xsltpath))(etree.parse(xmlpath))
def main():
    import sys
    print(transform(sys.argv[1], sys.argv[2]))

if __name__ == '__main__':
    main()

Слава разработчику lxml - работает как шарм!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...