Frage

Ich mag, was von vielen XSLT-Prozessoren wissen, da draußen gut mit Perl funktioniert.

Ich verwende Apache (2.0) und Perl, und ich möchte, PDFs und XHTMLs erhalten.

Ich bin neu in dieser Art von Projekten, so wird jeder Kommentar oder einen Vorschlag zu begrüßen.

Danke.


Sie eine einfache Suche bei Google ich viel gefunden und ich nehme an, dass es zu viele mehr.

Jeder Kommentar über Ihre Erfahrungen willkommen sein.

War es hilfreich?

Lösung

Erster Fehler - auf CPAN suchen, nicht Google:)

Dies wirft eine Reihe von Ergebnissen, sondern eher das Problem der CPAN ist hervorzuheben, dass es mehr als eine Lösung ist, und es ist nicht immer klar, welche diejenigen Arbeiten, wurden aufgegeben, sind gebrochen, langsam oder was auch immer.

Und verstörend, die beste Antwort (oder zumindest eine der besten) kommt auf Seite vier der Ergebnisse :( Wie andere Leute haben vorgeschlagen, XML :: LibXSLT ist robust und hat den Zweck erfüllt:

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

Wenn Sie die Ausgabe Ergebnisse in einer Datei möchten diese dann fügen

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

Wenn Sie möchten, tun Sie nichts Besonderes, es obwohl, XML: : LibXSLT :: einfach , die im wesentlichen nur die oben in einem Methodenaufruf Wraps (und tut ein paar clevere Sachen hinter den Kulissen mit Moose . Überprüfen Sie die Quelle für eine Ausbildung!).

  use XML::LibXSLT::Easy;

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

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

Andere Tipps

Bisher bin ich sehr zufrieden mit XML :: LibXML für nicht -xslt Aufgaben und deren Dokumentation verweist auf XML :: LibXSLT , was ziemlich aussieht schön, aber ich habe keine Erfahrung mit ihm so weit

Kann wirklich nicht sagen, was die beste Lösung ist, weil ich keine Chance haben, um zu versuchen, sie alle.
Aber ich kann Ihnen empfehlen, Perl-Modul LibXSLT zu versuchen.
Es ist eine Schnittstelle zur gnome libxslt Bibliothek. Ich habe es auf einem meiner letzten Projekt wurde mit ihm zufrieden.

Sie sagen nicht, was OS aber für die meisten * nix-Plattformen, XML :: LibXML geht das am einfachsten zu bedienen und installieren.

Hier sind ein paar Perl-Bibliotheken gedacht XSLT ersetzen:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top