Dann schreibt man das nachstehende Perl-Skript, welches diese Datei mithilfe des Moduls XML::Simple parst:
Einfacher als mit XML::Simple geht es nicht: Jedes Objekt der Klasse XML::Simple stellt zwei Methoden bereit: XMLin() und XMLout(). Die Methode XMLin() liest eine XML-Datei oder einen String ein und konvertiert die XML-Daten in eine Perl-Datenstruktur. Die Methode XMLout() macht genau das Gegenteil: Sie liest eine Perl-Struktur ein und gibt diese als Instanz eines XML-Dokuments zurück. Das Skript oben verwendet die Methode XMLin() zum Einlesen der zuvor erstellten Datei „data.xml“ und speichert das Ergebnis der Verarbeitung in der Variablen $data. Der Inhalt von $data wird dann mithilfe des Perl-Moduls Data::Dumper ausgegeben.
Dies ist das Ergebnis, wenn man das Skript ausführt:
Wie man sieht, wurde jedes Element und der zugehörige Inhalt in ein Schlüssel-Wert-Paar eines assoziativen Arrays (Hash) in Perl verwandelt. Auf die XML-Daten kann man nun mit der folgenden Variante des oben aufgeführten Skripts zugreifen:
Hier die entsprechende Ausgabe:
John Doe is 43 years old and works in the Operations section.
Nun ein Beispiel dafür, wie man mithilfe von XML::Simple auch kompliziertere XML-Dokumente verarbeiten kann.
Die einfache Verwendung von XML::Simple, um XML zu verarbeiten, trifft auch auf XML-Dokumente mit mehreren Ebenen zu. Als Beispiel dient die XML-Datei in Listing A. Wenn man diese mit XMLin() einliest, erhält man eine Struktur wie die in Listing B.
XML::Simple repräsentiert Elemente, die sich wiederholen, als Elemente eines anonymen Arrays. Daher wurden alle
Dies kann auch automatisch in einem Perl-Skript erledigt werden, indem man $data->{employees} dereferenziert und dann mithilfe einer foreach()-Schleife alle Elemente des Arrays verarbeitet. Ein Beispiel hierfür bietet der Code in Listing C. Und hier die Ausgabe:
Neueste Kommentare
Noch keine Kommentare zu XML-Dokumente mit Perls XML::Simple parsen
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.