2008-10-01 62 views
9

我想知道那里的许多XSLT引擎对Perl有什么作用。什么是Perl最好的XSLT引擎?

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

我是新来的这种项目,所以任何意见或建议将受到欢迎。

谢谢。


在Google上做一个简单的搜索我发现很多,我想还有更多。

任何评论您的经验将受到欢迎。

回答

26

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

如果你不想做任何奇特的事情,那就是XML::LibXSLT::Easy,它基本上只是在一个方法调用中包装了上述内容(并且在幕后使用Moose做了一堆聪明的东西。 )

use XML::LibXSLT::Easy; 

    my $p = XML::LibXSLT::Easy->new; 

    my $output = $p->process(xml => "foo.xml", xsl => "foo.xsl"); 
3

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

4

到目前为止,我很满意XML::LibXML非XSLT的任务,它的文档点XML::LibXSLT,这看起来相当不错,但我没有经验与它迄今

0

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