1. Unicate, 16.12.2011 #1
    Unicate

    Unicate Threadstarter Android-Experte

    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?
     
  2. the_alien, 16.12.2011 #2
    the_alien

    the_alien Android-Lexikon

    Je nach Struktur der XML kannst du es nicht mehr über einen Regex auswerten lassen und brauchst einen Parser.
     
  3. Unicate, 16.12.2011 #3
    Unicate

    Unicate Threadstarter Android-Experte

    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?
     
  4. DieGoldeneMitte, 16.12.2011 #4
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    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: 16.12.2011
  5. Unicate, 16.12.2011 #5
    Unicate

    Unicate Threadstarter Android-Experte

    Ok, danke für den Hinweis.

    Und ist es dann schneller?
     
  6. DieGoldeneMitte, 16.12.2011 #6
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Zuletzt bearbeitet: 16.12.2011
  7. MichaelS, 17.12.2011 #7
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    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 :)
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Unschönes XML parsen Android App Entwicklung 30.11.2016
Du betrachtest das Thema "Regex oder Parser?" im Forum "Android App Entwicklung",