10

我想知道有哪些 XSLT 引擎可以很好地与 Perl 配合使用。

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

我是这类项目的新手,因此欢迎提出任何意见或建议。

谢谢。


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

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

4

5 回答 5

28

第一个错误 -在 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" );
于 2008-10-01T09:32:02.980 回答
4

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

于 2008-10-01T08:35:52.880 回答
3

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

于 2008-10-01T08:23:44.533 回答
0

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

于 2008-10-01T12:04:57.560 回答
0

以下是一些旨在替换 XSLT 的 Perl 库:

于 2017-05-16T18:47:08.300 回答