Statistische Angaben über XML-Dokumente mit PHP

Aber das ist noch nicht alles: Mit der Methode countAttribute() kann man auch die Gesamtzahl der Attribute in einem XML-Dokument ermitteln, wie das folgende Beispiel zeigt:

Man beachte, dass in diesem Beispiel eine XML-Datei statt eines Strings die XML-Daten enthält. Daher muss man auch analyzeFile() statt analyzeString() verwenden. Hier die entsprechende XML-Datei test.xml:

Hier die Ausgabe des PHP-Scripts nach der Analyse dieser XML-Daten:


Datei enthält 4 Attribute

Wie in dem vorigen Beispiel kann man auch hier die Angaben filtern, so dass nur die Attribute gezählt werden, auf die ein bestimmtes Muster zutrifft. Dazu übergibt man den Namen des Attributs einfach als erstes Argument an countAttribute():

Da Attribute immer zu Elementen gehören, kann man die Suche sogar noch verfeinern, indem man sowohl den Namen des Elements als auch den des Attributs angibt, die zutreffen müssen:

Die Zeichen deuten

Neben Elementen und Attributen bietet die XML_Statistics-Klasse zwei weitere Methoden zum Zählen von Character Data (CDATA) in der Instanz eines XML-Dokuments. Die erste ist die Methode countDataChunks(), welche die Gesamtzahl der CDATA-Blöcke im Dokument zählt. Listing C zeigt ein Beispiel.

Da es zwei Elemente gibt, die Content einschließen, meldet countDataChunks() zwei CDATA-Blöcke. Falls man es noch präziser wünscht, kann man mit der Methode getCDataLength() auch die exakte Gesamtzahl der Zeichen in den einzelnen CDATA-Blöcken ermitteln. Listing D demonstriert dies. Und so müsste die Ausgabe aussehen:


String contains 2 CDATA blocks and 51 characters

Man beachte, dass die Methode getCDataLength() Whitespace beim Zählen ignoriert.

Neben dem Zählen von Elementen, CDATA-Blöcken und Attributen erlaubt die XML_Statistics-Klasse auch das Bestimmen der Anzahl von Processing Instructions (PI) und externen Entities in einer XML-Datei mithilfe der Methoden countPI() bzw. countExternalEntity(). Beispiele hierfür folgen weiter unten in diesem Artikel.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Apple meldet Umsatz- und Gewinnrückgang im zweiten Fiskalquartal

iPhones und iPads belasten das Ergebnis. Außerdem schwächelt Apple im gesamten asiatischen Raum inklusive China…

3 Tagen ago

MadMxShell: Hacker verbreiten neue Backdoor per Malvertising

Die Anzeigen richten sich an IT-Teams und Administratoren. Ziel ist der Zugriff auf IT-Systeme.

3 Tagen ago

April-Patches für Windows legen VPN-Verbindungen lahm

Betroffen sind Windows 10 und Windows 11. Laut Microsoft treten unter Umständen VPN-Verbindungsfehler auf. Eine…

3 Tagen ago

AMD steigert Umsatz und Gewinn im ersten Quartal

Server-CPUs und Server-GPUs legen deutlich zu. Das Gaming-Segment schwächelt indes.

4 Tagen ago

Google stopft schwerwiegende Sicherheitslöcher in Chrome 124

Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…

5 Tagen ago

Studie: 91 Prozent der Ransomware-Opfer zahlen Lösegeld

Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…

5 Tagen ago