sprachauszeichnung - xml lang attribute




Wie kann ich XML von Perl erstellen? (4)

Ich mache nicht viel XML, aber XML::Smart sieht so aus, als könnte es tun, was Sie wollen. Sehen Sie sich den Abschnitt Erstellen von XML-Daten im Dokument an und es sieht sehr einfach und benutzerfreundlich aus.

Paraphrasieren des Dokuments:

use XML::Smart;

## Create a null XML object:
my $XML = XML::Smart->new() ;

## Add a server to the list:
$XML->{server} = {
    os => 'Linux' ,
    type => 'mandrake' ,
    version => 8.9 ,
    address => [ '192.168.3.201', '192.168.3.202' ] ,
} ;

$XML->save('newfile.xml') ;

Was würde dies in newfile.xml setzen:

<server os="Linux" type="mandrake" version="8.9">
  <address>192.168.3.201</address>
  <address>192.168.3.202</address>
</server>

Cool. Ich werde damit spielen müssen :)

Ich muss XML in Perl erstellen. Von was ich gelesen habe, ist XML::LibXML zum Parsen und Verwenden von XML, das von woanders kommt. Hat jemand irgendwelche Vorschläge für einen XML-Writer? Wird XML::Writer noch verwaltet? Mag es jemand / benutze es?

Neben der Vollständigkeit der Funktionen bin ich an einer einfach zu verwendenden Syntax interessiert. Bitte beschreiben Sie die Syntax und andere Gründe, warum Ihnen dieses Modul in Ihrer Antwort gefällt.

Bitte antworten Sie mit einem Vorschlag pro Antwort, und wenn jemand bereits mit Ihrem Favoriten geantwortet hat, stimmen Sie bitte diese Antwort ab. Hoffentlich wird es leicht sein zu sehen, was am beliebtesten ist.

Vielen Dank!


Ich mag XML::TreeBuilder weil es meiner Meinung nach passt. Historisch habe ich es mehr zum Parsen als zum Emittieren verwendet.

Einige Wochen nachdem diese Frage gestellt wurde, hatte ich Gelegenheit, XML von Perl zu generieren. Ich überprüfte die anderen hier aufgelisteten Module, vorausgesetzt, eine von ihnen würde besser als XML :: TreeBuilder funktionieren, aber TreeBuilder war immer noch die beste Wahl für das, was ich wollte.

Ein Nachteil bestand darin, dass es keine Möglichkeit gibt, Verarbeitungsanweisungen und Deklarationen in einem XML :: TreeBuilder-Objekt darzustellen.


Wenn Sie eine Datenstruktur in Perl erstellen und in XML XML::Simple möchten, wird XML::Simple die Aufgabe gut erledigen.

Am einfachsten:

my $hashref = { foo => 'bar', baz => [ 1, 2, 3 ] };
use XML::Simple;
my $xml = XML::Simple::XMLout($hashref);

Wie der Name schon sagt, ist seine grundlegende Verwendung einfach; Es bietet jedoch viele Funktionen, wenn Sie sie benötigen.

Natürlich kann es XML auch einfach parsen.


XML :: Smart sieht gut aus, aber ich erinnere mich nicht daran, dass es verfügbar war, als ich vor vielen Jahren XML::Simple habe. Schöne Schnittstelle und funktioniert gut zum Lesen und Schreiben von XML.





perl