Perlに最適なXSLTエンジンは何ですか?
質問
Perlでうまく機能する多くのXSLTエンジンの内の何を知りたいです。
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
あなたの経験についてのコメントを歓迎します。
解決
最初の間違い- GoogleではなくCPANで検索:)
これは多くの結果をスローしますが、CPANの問題、つまり複数の解決策があり、どれが機能するか、放棄されているか、壊れているか、壊れているか、遅いかなどが常に明確ではありません。 >
そして不安なことに、ベストアンサー(または少なくとも、ベストアンサーの1つ)が結果の 4 ページに表示されます:(他の人が示唆しているように、 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 は、本質的に上記のメソッドを1回のメソッド呼び出しでラップするだけです(そしてムース。教育機関の情報源を確認してください!)
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ライブラリへのインターフェースです。最近のプロジェクトの1つでそれを使用し、満足しています。
OSの種類は言いませんが、ほとんどの* nixプラットフォームでは、 XML :: LibXML が最も簡単に使用およびインストールできます。
XSLTを置き換えることを目的としたいくつかのPerlライブラリを次に示します。