| |||||||
Das Thema "Regex oder Parser?" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #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
| 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?
__________________ Tutorials: - Getting Started with the Android NDK(en) - Zuverlässigkeit und Flußkontrolle bei der Datenübertragung in Multiplayer Games (de) - ExpandableListView mit X Leveln(de) |
| | |
| | #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
|
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. |
| | |
| | #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
|
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?
__________________ Tutorials: - Getting Started with the Android NDK(en) - Zuverlässigkeit und Flußkontrolle bei der Datenübertragung in Multiplayer Games (de) - ExpandableListView mit X Leveln(de) |
| | |
| | #4 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
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) |
| | |
| | #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
|
Ok, danke für den Hinweis. Und ist es dann schneller?
__________________ Tutorials: - Getting Started with the Android NDK(en) - Zuverlässigkeit und Flußkontrolle bei der Datenübertragung in Multiplayer Games (de) - ExpandableListView mit X Leveln(de) |
| | |
| | #6 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
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) |
| | |
| | #7 (permalink) |
| Fortgeschrittenes Mitglied Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
|
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/ |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| 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 |