10

多くの XSLT エンジンのうち、Perl でうまく動作するものを知りたいです。

Apache (2.0) と Perl を使用し、PDF と XHTML を入手したいと考えています。

この種のプロジェクトは初めてなので、コメントや提案は大歓迎です。

ありがとう。


Google で簡単な検索を行ったところ、たくさん見つかりましたが、もっとたくさんあると思います。

あなたの経験についてのコメントは大歓迎です。

4

5 に答える 5

28

最初の間違い - 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 つのメソッド呼び出しでラップするだけです (そして、 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 ライブラリへのインターフェースです。私は最近のプロジェクトの 1 つでそれを使用し、それに満足しました。

于 2008-10-01T08:23:44.533 に答える
0

どの OS かはわかりませんが、ほとんどの *nix プラットフォームでは、XML::LibXMLが最も簡単に使用およびインストールできます。

于 2008-10-01T12:04:57.560 に答える