XML parsen

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

  • N'Abend,

    ich hab ein Problem beim parsen folgender XML-Struktur. Übersichtshalber habe ich ein paar KEY-Elemente rausgenommen, aber zum verstehen
    meines Problems sollte das reichen.




    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. <RESPONSE>
    3. <MULTIPLE>
    4. <SINGLE>
    5. <KEY name="id">
    6. <VALUE>int</VALUE>
    7. </KEY>
    8. ...
    9. <KEY name="summary">
    10. <VALUE>string</VALUE>
    11. </KEY>
    12. <KEY name="modules">
    13. <MULTIPLE>
    14. <SINGLE>
    15. <KEY name="id">
    16. <VALUE>int</VALUE>
    17. </KEY>
    18. ...
    19. <KEY name="contents">
    20. <MULTIPLE>
    21. <SINGLE>
    22. <KEY name="type">
    23. <VALUE>string</VALUE>
    24. </KEY>
    25. ...
    26. <KEY name="license">
    27. <VALUE>string</VALUE>
    28. </KEY>
    29. </SINGLE>
    30. </MULTIPLE>
    31. </KEY>
    32. </SINGLE>
    33. </MULTIPLE>
    34. </KEY>
    35. </SINGLE>
    36. </MULTIPLE>
    37. </RESPONSE>
    Alles anzeigen





    Bisher
    habe ich einen Parser erstellt, der folgende Struktur parst:


    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8" ?><RESPONSE>
    2. <MULTIPLE>
    3. <SINGLE>
    4. </SINGLE> <SINGLE>
    5. </SINGLE> </MULTIPLE> </RESPONSE>



    Das
    Ganze habe ich wie folgt gelöst:


    - Wenn Elementname == RESPONSE → wir ein NSDictonary erstellt, das dann als Ergebnis-Dictonary dient.

    - Wenn Elementname == MULTIPLE → wird ein NSArray erstellt, welches unter dem KEY – Namen bei schließender Klammer im Ergebnis-Dictonary gespeichert wird.

    - Wenn Elementname == Single → wird ein NSDictonary erstellt, welches bei schließender Klammer im NSArray (MULTIPLE) gespeichert wird.

    Mein Problem ist nun, diese „Verschachtlung“ richtig abzubilden, d.h

    bei MULTIPLE->SINGLE->MULTIPLE weiss ich nicht, wie ich ein ein neues NSArray erzeugen kann, das dann quasi eine Ebene tiefer ist.

    Ich hoffe Ihr versteht was ich damit sagen möchte, das Problem hat mich jetzt nicht schlafen lassen, sodass ich den Beitrag im Halbschlaf
    verfasst habe ;)


    VG
    BTT