Question

J'aimerais savoir quels sont les nombreux moteurs XSLT qui fonctionnent bien avec Perl.

Je vais utiliser Apache (2.0) et Perl, et je souhaite obtenir des fichiers PDF et XHTML.

Je suis nouveau dans ce type de projets, tout commentaire ou suggestion sera donc le bienvenu.

Merci.

En faisant une recherche simple 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 sera le bienvenu.

Était-ce utile?

La solution

Première erreur - effectuer une recherche sur le réseau CPAN et non sur Google:

Cela donne une foule de résultats, mais met plutôt en évidence le problème du CPAN, selon lequel il existe plus d'une solution, et il n'est pas toujours évident de déterminer celles qui fonctionnent, qui ont été abandonnées, qui sont cassées, lentes ou autre.

De manière troublante, la meilleure réponse (ou du moins l'une des meilleures) apparaît à la page quatre des résultats :( Comme d'autres personnes l'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 souhaitez exporter les résultats dans un fichier, ajoutez ceci

#create output file
open(my $output_xml_file_name, '>', 'test.xml');
print $output_xml_file_name "$results";

Cependant, si vous ne voulez rien faire d’extraordinaire, il existe XML: : LibXSLT :: Easy , qui englobe essentiellement ce qui précède dans un seul appel de méthode (et fait un tas de choses intelligentes dans les coulisses en utilisant Moose . Recherchez l’éducation à la source!).

  use XML::LibXSLT::Easy;

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

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

Autres conseils

Jusqu'à présent, je suis très satisfait de XML :: LibXML pour non Les tâches -xslt et sa documentation pointent vers XML :: LibXSLT , qui a tout à fait bien, mais je n'ai aucune expérience avec cela jusqu'à présent

Je ne peux pas vraiment dire quelle est la meilleure solution car je n'ai pas eu la chance de toutes les essayer.
Mais je peux vous recommander d'essayer le module Perl LibXSLT .
C'est une interface avec la bibliothèque gnome libxslt. Je l’ai utilisé lors d’un de mes récents projets en était satisfait.

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.

Voici quelques bibliothèques Perl destinées à remplacer XSLT:

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top