NSXMLParser mit leeren Attributen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • NSXMLParser mit leeren Attributen

    Hello Leute!

    Ich habe gerade ein Problem mit meinem NSXMLParser in iOS5.1.
    Von einem Webserver lade ich eine XML Datei, die folgendermaßen aufgebaut ist:

    Quellcode

    1. <document> <item att1="1" att2="2" att3="" att4="" /> <item att1="1" att2="" att3="3" att4="4" /> <item att1="" att2="" att3="" att4="4" /></document>


    Die einzelnen Einträge werden in ein UITableView geladen. Wenn der User auf eine Zelle klickt, öffnet sich ein modalViewController und die entsprechenden Attribute werden in Textfelder eingefügt.
    Wenn der modalViewController wieder geschlossen wird, sammle ich die Informationen aus den einzelnen Textfeldern und mache einen NSString daraus, der dann die Informationen wieder an den Server zurück übermittelt:

    Quellcode

    1. requestString = [requestString stringByAppendingFormat:@"http://www.domain.de/eintrag.php?att1=%@&att2=%@&att3=%@&att4=%@", att1.text, att2.text, att3.text, att4.text];


    Mit den Attributen, in denen etwas drin steht, funktioniert auch alles super. Nur mit den leeren Attributen taucht ein Problem auf.
    Die Textfelder mit den leeren Attributen (in Zeile 1: att3 & att4) bleiben zwar, wie erwartet, leer.
    Doch wenn ich den String wieder zusammenfüge, kommt dabei folgendes raus:

    Quellcode

    1. http://www.domain.de/eintrag.php?att1=1&att2=2&att3=(null)&att4=(null)


    Ins gesamt handelt es sich um fast 50 Felder.


    Hat vielleicht jemand eine Idee, woran das liegen könnte?
    Ich rätsele da jetzt schon Stunden dran herum und komme einfach auf keine Antwort!


    Vielen Dank, liebe Grüße
    Julian
  • Danke für den Tip, hilft aber leider nicht… :(
    Es sind auch komischerweise immer die selben Textfelder, solange nichts drin steht.

    Sobald was rein geschrieben wird, geht's.

    Kann das vllt. ein Problem des Parsers sein?
    Eventuell muss ich dem ja irgendwie beibringen, dass er leere Felder trotzdem befüllen soll.

    Andererseits geht es ja bei einigen anderen Textfeldern.
    Also schon echt komisch, die ganze Sache...
  • Die NULL-Felder durch einen Leerstring ersetzen.

    Zum Beispiel so:

    Quellcode

    1. for(textfield in allTextfields){
    2. textfield = textfield == NULL ? @"" : textfield;
    3. }

    (PseudoCode)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Yedy ()

  • null steht für einen Nullzeiger und nicht etwa für einen String mit dem Wert "null"

    Nullzeiger

    Der Nullzeiger ist ein Zeiger mit einem speziellen, dafür reservierten Wert (sog. Nullwert, nicht zwingend numerisch 0), der anzeigt, dass auf nichts verwiesen wird. Nullzeiger werden in fast allen Sprachen sehr häufig verwendet, da man mittels des Nullzeigers eine „designierte Leerstelle“ kennzeichnet.


    de.wikipedia.org/wiki/Zeiger_%28Informatik%29#Nullzeiger
  • Habe jetzt eine Antwort!

    Wie mir gerade klar geworden ist, stimmt mein Post nicht so ganz.
    Die Textfelder, aus denen ich die Informationen heraus hole sind gar nicht leer. Dort steht Text drin!

    Habe jetzt das tatsächliche Problem einkreisen können und habe so festgestellt, dass der Fehler auftaucht, sobald ich Umlaute oder z.B. ß in das Textfeld eintrage.
    Denn in dem Moment returned das UITextField einfach nur (null).

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von julian.weinert ()

  • ICH NEHME ALLES ZURÜCK!

    Verdammt, da hab ich den Wald vor lauter Bäumen nicht gesehen…
    Ich sollte evtl. weniger arbeiten und mehr Pausen machen. Ich glaube sonst nerve ich andere Leute weiter mit meiner Unaufmerksamkeit und Blödheit :)

    Quizz: Was ist der Unterschied zwischen NSASCIIStringEncoding und NSUTF8StringEncoding?
    Hahah :D Wie blöde!

    Aber hey!
    Vielen lieben Dank für eure Bemühungen und liebe Antworten!