什么是最好的 XSLT 引擎 Perl.



我想知道在众多XSLT引擎中,哪些引擎可以很好地与Perl配合使用。

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

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

谢谢。


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

  • http://www.mod-xslt2.com/
  • http://xml.apache.org/xalan-j/
  • http://saxon.sourceforge.net/
  • http://www.dopscripts.com/xslt_parser.html

欢迎对您的经历发表任何评论。

第一个错误 - 在CPAN上搜索,而不是谷歌:)

这引发了一堆结果,但确实突出了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" );

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

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

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

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

  • XPathScript
  • XSLTish
  • XSH2

最新更新