Statistische Angaben über XML-Dokumente mit PHP

Die XML_Statistics-Klasse bringt auch zwei Utility-Funktionen mit: Die Methode getMaxDepth() misst die maximale Tiefe einer Reihe von verschachtelten Elementen, während countTagsInDepth() alle Tags einer bestimmten Ebene der Verschachtelung zählt. Listing E ist ein Beispiel für eine XML-Datei, die mit dem PHP-Code in Listing F analysiert wird.

Wie man in Listing F erkennt, bestimmt man zuerst die Tiefe des XML-Baums mit der Methode getMaxDepth() und verwendet dann eine for()-Schleife und die Methode countTagsInDepth() um die Gesamtzahl der Elemente auf jeder Ebene zu bestimmten. Und so sieht die Ausgabe aus:


Maximum depth of XML tree is 3
1 element(s) at level 1
5 element(s) at level 2
4 element(s) at level 3

Alles zusammen

Listing G ist ein zusammengesetztes Beispiel, das noch einmal alle oben beschriebenen Methoden demonstriert. Dieses Beispiel besteht aus einem Formular, in das der Anwender einen Pfad eingeben kann. Nach dem Abschicken scannt das Script den angegebenen Speicherort nach XML-Dateien, analysiert jede von ihnen und zeigt für jede einen Bericht über den Inhalt an.

Eigentlich besteht dieses Script aus zwei Teilen: Der erste Teil dient der Anzeige des Formulars, der zweite verarbeitet die Formulardaten. Sobald der Anwender ein Verzeichnis eingegeben hat, überprüft das Script zuerst, ob der eingegebene Pfad gültig ist und iteriert dann über alle Dateien in dem Verzeichnis um eine Liste gültiger Dateien zu erstellen (Dateien mit der Erweiterung .xml). Jede Datei wird mithilfe der Methode analyzeFile() analysiert und ein Bericht über ihren Inhalt wird ausgegeben. Dieser Prozess wird fortgeführt bis alle XML-Dateien im angegebenen Verzeichnis analysiert wurden. Falls der Anwender ein ungültiges oder falsches Verzeichnis eingibt, bricht das Script mit einer Fehlermeldung ab.

Ein Beispiel für die Ausgabe zeigt Abbildung A. Falls man sich über das Auftauchen von „PIs: 1“ in jeder Datei wundert: Die allererste Zeile eines XML-Dokuments, die XML-Deklaration, ist selbst eine Processing Instruction (PI).

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Digitale Produkte „cyberfit“ machen

Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.

3 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…

3 Tagen ago

Apple schließt Zero-Day-Lücken in iOS, iPadOS und macOS

Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…

3 Tagen ago

Gefährliche Anzeigen für Passwortmanager Bitwarden verbreiten Malware

Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…

4 Tagen ago

Public Cloud: Gartner erwartet 2025 weltweite Ausgaben von 723 Milliarden Dollar

Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.

4 Tagen ago

iPhone 15 ist bestverkauftes Smartphone im dritten Quartal

Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…

4 Tagen ago