Regex oder Parser?

U

Unicate

Erfahrenes Mitglied
57
Hallo alle zusammen!

Ich habe eine XML zu lesen. Ich starte also einen HttpRequest.

Jetzt die Frage:

Ich könnte den InputStream des HttpResponses in einen Parser schiessen oder aber die xml als String einlesen und über einen regex ziehen.

Was ist schneller?
 
Je nach Struktur der XML kannst du es nicht mehr über einen Regex auswerten lassen und brauchst einen Parser.
 
Naja, im Moment mach ich das schon mit einem Parser. Die frage ist, ob es mit einem Regex schneller gehen würde.

Kennst du einen Fall wo man mit dem regex nicht weiterkommen würde?
 
Die Faustregel ist:

XML per Regex zu parsen ist eine Straße in die Hölle.

Das mag bei einfachen, bekannten und "sicheren" (=aus zuverlässiger Quelle) XML Dateien noch gehen (da mache ich es auch lieber, weils so einfach ist), aber sobald man mit CDATA (<item><![CDATA[<item>]]></item>), geschachtelten Tagnamen oder großen XML Dateien zu tun hat, hat man damit keine Freude mehr.

Nicht parsbar ist es spätestens in dem Moment, wenn man ein Element hat, dass sich selbst enthalten kann. Siehe in XHTML das Element <div>. Da kann man zwar noch mit Krücken weitermachen (schachteltiefe zählen), aber da baust du im Prinzip den Parser dann selber nach. => bringt also nicht wirklich was.

Wenn du schon einen Parser hast, spricht das dafür, dabei zu bleiben.
 
Zuletzt bearbeitet:
Ok, danke für den Hinweis.

Und ist es dann schneller?
 
Zuletzt bearbeitet:
Es gibt auch Unterschiede beim Parsen :) Wenn du das ganze XML zu einem Objekt Baum zusammen baust, kostet das deutlich mehr Performance als wenn du im Stream deine Infos raus ziehst :)
 

Ähnliche Themen

A
Antworten
1
Aufrufe
637
swa00
swa00
G
Antworten
5
Aufrufe
871
jogimuc
J
J
Antworten
0
Aufrufe
889
JonHart
J
Zurück
Oben Unten