Perl 的最佳 XSLT 引擎是什么?
题
我想知道众多 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, ,它本质上只是将上述内容包装在一个方法调用中(并使用在幕后做了一堆聪明的事情 驼鹿. 。检查教育来源!)。
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 将是最容易使用和安装的。
不隶属于 StackOverflow