Immer mehr Inhalte liegen im XML-Format vor und XML-Dateien werden zunehmend komplexer. Daher muss man diese Dateien mitunter analysieren und statistische Angaben über sie ermitteln. Dies ist zwar keine alltägliche Aufgabe, aber sollte man doch einmal in die Verlegenheit kommen, wird man eine Lösung zu schätzen wissen, die ohne komplizierte Routinen zum Parsen mit SAX nebst Berechnungen oder ausgefeilte Algorithmen zum Durchforsten von DOM-Bäumen auskommt. Alles was man braucht, ist die Klasse XML_Statistics aus dem PHP-Fundus PEAR.
Was ist XML_Statistics?
Stephan Schmidt, Entwickler des Template-Systems patTemplate und Betreiber der Website phptools.de, ist auch für die Entwicklung und Pflege von XML_Statistics verantwortlich. Der Zweck dieser Klasse ist einfach: statistische Informationen über die Elemente, Attribute und sonstigen Bestandteile einer XML-Datei zu sammeln. Diese Klasse bietet eine sauber definierte API, die Entwicklern unter anderem die folgenden Zahlen liefert:
Elemente zählen
Vorausgesetzt wird, dass eine funktionierende PHP/Apache-Installation vorhanden ist, mit den standardmäßigen PEAR-Dateien und allen korrekten Pfadangaben. Zunächst lädt man die Klasse herunter und installiert sie in das PEAR-Verzeichnis. Als nächstes erstellt man ein PHP-Script mit dem Code aus Listing A.
Wenn man bereits mit Objekten und Klassen in PHP vertraut ist, dürfte der Code im Wesentlichen selbsterklärend sein. Der erste Schritt besteht darin, die Klassen-Datei einzubinden und ein Objekt dieser Klasse zu instanziieren. Danach kann man mit der Methode analyzeString() den XML-Inhalt analysieren. Diese Analyse ist notwendig, ehe man irgendwelche Berechnungen anstellen kann. Und schließlich kann man mit der Methode countTag() alle Elemente des Dokuments zählen und die Summe ausgeben.
Hier die Ausgabe von Listing A:
String contains 7 elements
Man kann auch die Elemente zählen, auf die ein bestimmtes Muster zutrifft, indem man den Namen des Elements als Eingabeargument an die Methode countTag() übergibt. Listing B ist eine Variante des Codes aus Listing A um dies zu illustrieren. Hier die Ausgabe, die man erhalten müsste:
String contains 5 fields
Wie man sieht, ist dies eine äußerst nützliche Funktion, wenn man zum Beispiel herausfinden will, wie viele <Elemente> in einer XML-Datei benannt sind. Dies ist zudem wesentlich bequemer als den Namen eines Elements abzufragen und eine Zählvariable hoch zu zählen (wie man es bei der manuellen Programmierung mit SAX oder DOM machen müsste).
Bösartige QR-Codes, die per E-Mail versendet werden, eignen sich sehr gut, um Spam-Filter zu umgehen.
Unsichere Websites und Phishing-Mails in Verbindung mit Black Friday können kauffreudigen Konsumenten zum Verhängnis werden.
Malware SmokeLoader wird weiterhin von Bedrohungsakteuren genutzt, um Payloads über neue C2-Infrastrukturen zu verbreiten.
Bankhaus Metzler und Telekom-Tochter MMS testen, inwieweit Bitcoin-Miner das deutsche Stromnetz stabilisieren könnten.
Mit 1,7 Exaflops ist El Capitan nun der dritte Exascale-Supercomputer weltweit. Deutschland stellt erneut den…
Der deutsche Hyperscaler erweitert sein Server-Portfolio um vier Angebote mit den neuen AMD EPYC 4004…