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).
Vernetzte Produkte müssen laut Cyber Resilience Act über Möglichkeiten zur Datenverschlüsselung und Zugangsverwaltung verfügen.
Das jüngste Update für Windows, macOS und Linux stopft drei Löcher. Eine Anfälligkeit setzt Nutzer…
Zwei von Google-Mitarbeitern entdeckte Schwachstellen werden bereits aktiv gegen Mac-Systeme mit Intel-Prozessoren eingesetzt. Sie erlauben…
Die Hintermänner haben es unter anderem auf Daten von Facebook-Geschäftskonten abgesehen. Opfer werden über angebliche…
Bis 2027 werden 90 Prozent der Unternehmen eine Hybrid-Cloud-Strategie umsetzen.
Apple belegt in der Statistik von Counterpoint die ersten drei Plätze. Samsungs Galaxy S24 schafft…