Sobald das Modul installiert ist, erstellt man die folgende XML-Datei und nennt sie „data.xml“:
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 -Elemente aus der XML-Datei in ein Perl-Array umgewandelt, von denen jedes Element einen Mitarbeiter repräsentiert. Um auf den Wert „John Doe“ zuzugreifen, braucht man nur die folgende Syntax zu verwenden: $data->{employee}->[0]->{name}
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:
Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…
Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…
Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.
Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…
Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.