Какой лучший движок XSLT для Perl?
Я хотел бы знать, какой из многих движков XSLT там хорошо работает с Perl.
Я буду использовать Apache (2.0) и Perl и хочу получить PDF и XHTML.
Я новичок в подобных проектах, поэтому любые комментарии или предложения будут приветствоваться.
Благодарю.
Делая простой поиск в Google, я нашел много, и я полагаю, что есть еще много.
- http://www.mod-xslt2.com/
- http://xml.apache.org/xalan-j/
- http://saxon.sourceforge.net/
- http://www.dopscripts.com/xslt_parser.html
Любые комментарии о вашем опыте будут приветствоваться.
5 ответов
Первая ошибка - поиск по 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);
Если вы не хотите делать что-то необычное, есть XML:: LibXSLT:: Easy, который, по сути, просто оборачивает вышеупомянутое в один вызов метода (и делает кучу умных вещей за кулисами, используя Moose. Проверьте источник для образование!).
use XML::LibXSLT::Easy;
my $p = XML::LibXSLT::Easy->new;
my $output = $p->process( xml => "foo.xml", xsl => "foo.xsl" );
До сих пор я очень доволен XML:: LibXML для задач, не относящихся к xslt, и его документация указывает на XML:: LibXSLT, который выглядит довольно неплохо, но у меня пока нет опыта работы с ним
Не могу сказать, какое решение лучше, потому что у меня не было возможности попробовать их все.
Но я могу порекомендовать вам попробовать Perl-модуль LibXSLT.
Это интерфейс к библиотеке GNOME libxslt. Я использовал его на одном из моих недавних проектов, был доволен этим.
Вы не говорите, какая ОС, но для большинства *nix-платформ XML::LibXML будет самым простым в использовании и установке.
Вот несколько библиотек Perl, предназначенных для замены XSLT: