PHP Everywhere: High Speed XML Parsing is Not Intuitive
John benchmarkt RegEx gegen explode(!) DOM, SAX und XPath.
Results
Here are the timings for processing the RSS file 1000 times. Faster is better.
seconds Relative to REGEX REGEX 0.1080 1.00 EXPLODE 0.1696 1.57 DOM 6.3212 58.53 XPATH 8.3417 77.24 SAX 10.0851 93.38
Wie aus den Kommentaren ersichtlich ist, ist das zwar ein an sich beachtenswertes Resultat, allerdings fehlt der Bezug zur realen Welt. XML mit Regulären Audrücken zu Parsen funktioniert nur dann, wenn über die Form des XML absolute Gewissheit besteht.
Auf meinen akuten Fall, nämlich eRONA, bezogen: da es fast 10 Versionen von RSS gibt (inkl. Atom 0.3 sind es 10) kann ich hier nicht mit RegEx arbeiten, da ich garnicht weiß, wie die Daten aussehen, die ich bekomme. Also bleibt nur der Weg über einen Parser wie SAX oder expat, der aus dem XML einen Baum zaubert, in dem man sich bewegen kann und auf gut Glück versucht, Daten zu extrahieren.
Der Feed Parser [dive into mark] aka Ultra Liberal RSS Parser (basierend auf SAX) geht einen Schritt weiter und ‘normalisiert’ eingegebene Daten in dem Versuch, ein möglichst sinnvolles Resultat sogar für eigentlich unbrauchbare Feeds zu liefern.
Note to self: Wie kann ich den ULFP (sind Abk. nicht was dolles ;)) in eRONA (noch eine! Juhu!) einbauen?