2008-10-01 4 views
9

Ich würde gerne wissen, was von den vielen XSLT-Engines draußen gut mit Perl funktioniert.Was ist die beste XSLT-Engine für Perl?

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

Ich bin neu in dieser Art von Projekten, so dass jeder Kommentar oder Vorschlag willkommen sein wird.

Danke.


Mit einer einfachen Suche auf Google fand ich viel und ich nehme an, dass es zu viel mehr gibt.

Jeder Kommentar über Ihre Erfahrungen willkommen.

Antwort

26

erste Fehler - search on CPAN, nicht Google :)

Dies wirft eine Reihe von Ergebnissen auf, aber zeigt eher das Problem von CPAN, dass es mehr als eine Lösung gibt, und es ist nicht immer klar, welche funktionieren, wurden aufgegeben, sind kaputt, langsam oder was auch immer .

und verstörend, die beste Antwort (oder zumindest eine der besten) kommt auf der Seite vier der Ergebnisse :(Wie andere Leute haben vorgeschlagen, XML::LibXSLT robust ist und macht den Job:

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 nichts Phantasievolles tun möchten, gibt es XML::LibXSLT::Easy, die im Wesentlichen nur die oben genannten in einem Methodenaufruf (und macht eine Reihe von cleveren 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"); 
3

Ich kann nicht wirklich sagen, welche die beste Lösung ist, weil ich keine Chance hatte, sie alle auszuprobieren.
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 Projekte verwendet, war damit zufrieden.

4

Bisher bin ich sehr zufrieden mit XML::LibXML für Nicht-xslt Aufgaben und deren Dokumentation zeigt auf XML::LibXSLT, die ganz nett aussieht, aber ich habe keine Erfahrung mit ihm bisher

0

Sie sagen nicht, welches Betriebssystem, aber für die meisten * nix Plattformen, XML::LibXML wird am einfachsten zu verwenden und zu installieren sein.

Verwandte Themen