2008-10-01 21 views
9

Je voudrais savoir quels sont les nombreux moteurs XSLT qui fonctionnent bien avec Perl. Je vais utiliser Apache (2.0) et Perl, et je veux obtenir des fichiers PDF et XHTML. Je suis nouveau dans ce genre de projets, donc tout commentaire ou suggestion sera le bienvenu.Quel est le meilleur moteur XSLT pour Perl?

Merci. En faisant une simple recherche sur Google, j'ai trouvé beaucoup de choses et je suppose qu'il y en a beaucoup d'autres.

Tout commentaire sur vos expériences seront les bienvenus.

Répondre

26

Première erreur - search on CPAN, non Google :)

Cela donne un tas de résultats, mais souligne plutôt le problème du CPAN, qu'il y a plus d'une solution, et on ne sait pas toujours lesquelles fonctionnent, ont été abandonnées, sont cassées, lentes ou .

Et fâcheusement, la meilleure réponse (ou tout au moins, l'un des meilleurs) revient à la page quatre des résultats :(Comme d'autres personnes ont suggéré, XML::LibXSLT est robuste et fait le travail:

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); 

Si vous ne voulez pas faire quelque chose de fantaisiste, cependant, il ya XML::LibXSLT::Easy, qui enveloppe essentiellement le dessus en un appel de méthode (et fait un tas de choses intelligentes dans les coulisses en utilisant Moose. Vérifiez la source pour une éducation!

use XML::LibXSLT::Easy; 

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

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

Je ne peux pas vraiment dire quelle est la meilleure solution parce que je n'ai pas eu l'occasion de tous les essayer. Je peux cependant vous recommander d'essayer le module Perl LibXSLT.
C'est une interface avec la bibliothèque gnome libxslt. Je l'ai utilisé sur un de mes récents projets en a été satisfait.

4

Jusqu'à présent, je suis très satisfait de XML::LibXML pour des tâches non-xslt, et ses points de documentation à XML::LibXSLT, qui a l'air assez agréable, mais je n'ai aucune expérience jusqu'à présent

0

Vous ne dites pas quel système d'exploitation mais pour la plupart des plates-formes * nix, XML::LibXML sera le plus facile à utiliser et à installer.