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

Chips bescheren Samsung deutlichen Gewinnzuwachs

Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…

5 Tagen ago

Chrome: Google verschiebt das Aus für Drittanbietercookies

Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…

5 Tagen ago

BAUMLINK: Wir sind Partner und Aussteller bei der Frankfurt Tech Show 2024

Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…

5 Tagen ago

Business GPT: Generative KI für den Unternehmenseinsatz

Nutzung einer unternehmenseigenen GPT-Umgebung für sicheren und datenschutzkonformen Zugriff.

5 Tagen ago

Alphabet übertrifft die Erwartungen im ersten Quartal

Der Umsatz steigt um 15 Prozent, der Nettogewinn um 57 Prozent. Im nachbörslichen Handel kassiert…

1 Woche ago

Microsoft steigert Umsatz und Gewinn im dritten Fiskalquartal

Aus 61,9 Milliarden Dollar generiert das Unternehmen einen Nettoprofit von 21,9 Milliarden Dollar. Das größte…

1 Woche ago