Perl最好的XSLT引擎是什么?

时间:2020-03-06 14:57:57  来源:igfitidea点击:

我想知道许多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

我们欢迎我们对自己的经历发表任何评论。

解决方案

真的不能说哪个是最好的解决方案,因为我没有机会尝试所有的解决方案。
但我建议我们尝试使用Perl模块LibXSLT。
它是gnome libxslt库的接口。我在最近的一个项目中使用它对此感到满意。

到目前为止,我对用于非xslt任务的XML :: LibXML非常满意,它的文档指向XML :: LibXSLT,看起来不错,但是到目前为止我还没有经验

在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" );

我们没有说什么操作系统,但是对于大多数* nix平台而言,XML :: LibXML将是最易于使用和安装的。