Domanda

Vorrei sapere quale dei molti motori XSLT là fuori funziona bene con Perl.

Userò Apache (2.0) e Perl e desidero ottenere PDF e XHTML.

Sono nuovo di questo tipo di progetti, quindi qualsiasi commento o suggerimento sarà il benvenuto.

Grazie.


Facendo una semplice ricerca su Google ho trovato molto e suppongo che ce ne siano molti di più.

Qualsiasi commento sulle tue esperienze sarà il benvenuto.

È stato utile?

Soluzione

Primo errore - ricerca su CPAN , non Google:)

Questo genera un sacco di risultati, ma mette piuttosto in evidenza il problema di CPAN, che esiste più di una soluzione e non è sempre chiaro quali funzionano, sono stati abbandonati, sono rotti, lenti o altro.

E in modo inquietante, la risposta migliore (o almeno una delle migliori) arriva alla pagina quattro dei risultati :( Come hanno suggerito altre persone, XML :: LibXSLT è robusto e fa il lavoro:

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

Se si desidera generare risultati in un file, aggiungere questo

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

Se non vuoi fare niente di speciale, però, c'è XML: : LibXSLT :: Easy , che essenzialmente racchiude quanto sopra in una chiamata al metodo (e fa un sacco di cose intelligenti dietro le quinte usando Moose . Controlla la fonte per un'istruzione!).

  use XML::LibXSLT::Easy;

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

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

Altri suggerimenti

Finora sono molto soddisfatto di XML :: LibXML per non -xslt task, e la sua documentazione punta a XML :: LibXSLT , che sembra abbastanza bello, ma finora non ho esperienza

Non posso davvero dire quale sia la soluzione migliore perché non ho avuto la possibilità di provarle tutte.
Ma posso consigliarti di provare il modulo Perl LibXSLT .
È un'interfaccia per la libreria gnome libxslt. L'ho usato in uno dei miei recenti progetti, ne sono rimasto soddisfatto.

Non dite quale sistema operativo, ma per la maggior parte delle piattaforme * nix, XML :: LibXML sarà il più facile da usare e installare.

Ecco alcune librerie Perl destinate a sostituire XSLT:

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top