Какой лучший движок XSLT для Perl? - PullRequest
10 голосов
/ 01 октября 2008

Я хотел бы знать, какой из множества двигателей XSLT хорошо работает с Perl.

Я буду использовать Apache (2.0) и Perl и хочу получить файлы PDF и XHTML.

Я новичок в подобных проектах, поэтому любые комментарии и предложения будут приветствоваться.

Спасибо.


Делая простой поиск в Google, я нашел много, и я полагаю, что есть еще много.

Любые комментарии о вашем опыте будут приветствоваться.

Ответы [ 5 ]

28 голосов
/ 01 октября 2008

Первая ошибка - поиск по CPAN , а не по Google:)

Это выдает кучу результатов, но скорее подчеркивает проблему CPAN, что существует более одного решения, и не всегда ясно, какие из них работают, были заброшены, сломаны, медленны или что-то еще.

И, к сожалению, лучший ответ (или, по крайней мере, один из лучших) появляется на странице четыре результатов :( Как и другие люди предложили, XML :: LibXSLT надежен и выполняет свою работу:

  use XML::LibXSLT;
  use XML::LibXML;

  my $parser = XML::LibXML->new();
  my $xslt = XML::LibXSLT->new();

  my $source = $parser->parse_file('foo.xml');
  my $style_doc = $parser->parse_file('bar.xsl');

  my $stylesheet = $xslt->parse_stylesheet($style_doc);

  my $results = $stylesheet->transform($source);

  print $stylesheet->output_string($results);

Если вы хотите вывести результаты в файл, добавьте это

#create output file
open(my $output_xml_file_name, '>', 'test.xml');
print $output_xml_file_name "$results";

Однако, если вы не хотите делать что-то необычное, есть XML :: LibXSLT :: Easy , который, по сути, просто оборачивает вышеупомянутое в один вызов метода (и выполняет кучу умных вещей сцены с использованием Moose . Проверьте источник образования!).

  use XML::LibXSLT::Easy;

  my $p = XML::LibXSLT::Easy->new;

  my $output = $p->process( xml => "foo.xml", xsl => "foo.xsl" );
4 голосов
/ 01 октября 2008

Пока что я очень доволен XML :: LibXML для задач, не относящихся к xslt, и его документация указывает на XML :: LibXSLT , что выглядит довольно неплохо, но я пока что не имею опыта

3 голосов
/ 01 октября 2008

Не могу сказать, какое решение лучше, потому что у меня не было возможности попробовать их все.
Но я могу порекомендовать вам попробовать модуль Perl LibXSLT .
Это интерфейс к библиотеке GNOME libxslt. Я использовал его на одном из моих недавних проектов, доволен им.

0 голосов
/ 16 мая 2017

Вот несколько библиотек Perl, предназначенных для замены XSLT:

0 голосов
/ 01 октября 2008

Вы не говорите, какую ОС, но для большинства * nix-платформ XML :: LibXML будет самым простым в использовании и установке.

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