Perl最好的XSLT引擎是什么?

时间:2008-10-01 08:18:04

标签: perl apache pdf xhtml xslt

我想知道Perl中很多XSLT引擎都能很好地工作。

我将使用Apache(2.0)和Perl,我想获取PDF和XHTML。

我是这类项目的新手,所以欢迎任何评论或建议。

感谢。


在Google上进行简单搜索我发现了很多,我想还有更多。

欢迎任何关于您的经历的评论。

5 个答案:

答案 0 :(得分:28)

第一个错误 - search on 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" );

答案 1 :(得分:4)

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

答案 2 :(得分:3)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

以下是一些旨在取代XSLT的Perl库: