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将是最易于使用和安装的。