Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Regex oder Parser?

Das Thema "Regex oder Parser?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 16.12.2011, 10:37   #1 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Desire HD

Registriert seit: 09.08.2010
Beiträge: 345
Abgegebene Danke: 11
Erhielt 40 Danke für 38 Beiträge
Standard Regex oder Parser?

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?
Unicate ist offline   Mit Zitat antworten
Alt 16.12.2011, 11:08   #2 (permalink)
Android Guru

Modell: T-Mobile G1, Nexus One, Samsung Galaxy Tab 10.1, Samsung Galaxy Nexus

Registriert seit: 04.05.2009
Beiträge: 1.599
Abgegebene Danke: 128
Erhielt 210 Danke für 193 Beiträge
Standard AW: Regex oder Parser?

Je nach Struktur der XML kannst du es nicht mehr über einen Regex auswerten lassen und brauchst einen Parser.
__________________
Follow/Add/Circle/Whatever me on Google+

Solitaire HD, ein Solitaire optimiert für Honeycomb.
the_alien ist offline   Mit Zitat antworten
Alt 16.12.2011, 11:10   #3 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Desire HD

Registriert seit: 09.08.2010
Beiträge: 345
Abgegebene Danke: 11
Erhielt 40 Danke für 38 Beiträge
Standard AW: Regex oder 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?
Unicate ist offline   Mit Zitat antworten
Alt 16.12.2011, 11:17   #4 (permalink)
Android Experte
 
Benutzerbild von DieGoldeneMitte

Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
Standard AW: Regex oder Parser?

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.
__________________
Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon.
Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten.
Tipp: Zum "Danke" sagen gibt es einen Button.

Geändert von DieGoldeneMitte (16.12.2011 um 11:26 Uhr)
DieGoldeneMitte ist offline   Mit Zitat antworten
Alt 16.12.2011, 11:19   #5 (permalink)
Fortgeschrittenes Mitglied

Modell: HTC Desire HD

Registriert seit: 09.08.2010
Beiträge: 345
Abgegebene Danke: 11
Erhielt 40 Danke für 38 Beiträge
Standard AW: Regex oder Parser?

Ok, danke für den Hinweis.

Und ist es dann schneller?
Unicate ist offline   Mit Zitat antworten
Alt 16.12.2011, 11:36   #6 (permalink)
Android Experte
 
Benutzerbild von DieGoldeneMitte

Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
Standard AW: Regex oder Parser?

Bei kleinen, einfachen Sachen würde ich davon ausgehen, dass Regex schneller ist.

Aber: Rules Of Optimization wegen Premature Optimization

Nochwas: Auch an Sachen wie <?xml encoding="utf-8"?> gedacht?
__________________
Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon.
Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten.
Tipp: Zum "Danke" sagen gibt es einen Button.

Geändert von DieGoldeneMitte (16.12.2011 um 11:39 Uhr)
DieGoldeneMitte ist offline   Mit Zitat antworten
Alt 17.12.2011, 08:44   #7 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: Regex oder Parser?

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
__________________
http://android.fungamer.net/
MichaelS ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
hilfe! will ich defy+ oder nexus s oder optimus black oder ace oder... Scooty Allgemeine Kaufberatung 4 12.10.2011 15:50
XML SAX Parser TeeJay90 Android App Entwicklung 0 12.06.2011 18:50
Regex Probleme ODER smileyep1 Android App Entwicklung 1 06.05.2011 17:35
XML Parser MetBo Android App Entwicklung 1 30.01.2011 21:37
O2 Rechnung CSV Parser extrem101 Smalltalk und Offtopic 4 31.05.2010 14:49




Du liest gerade: "Regex oder Parser?" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.