Lieber Besucher, herzlich willkommen bei: OS X Entwicklerforum.
Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert.
Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können.
Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang.
Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.
XML parsen
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.
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<?xml version="1.0" encoding="UTF-8" ?>
<RESPONSE>
<MULTIPLE>
<SINGLE>
<KEY name="id">
<VALUE>int</VALUE>
</KEY>
...
<KEY name="summary">
<VALUE>string</VALUE>
</KEY>
<KEY name="modules">
<MULTIPLE>
<SINGLE>
<KEY name="id">
<VALUE>int</VALUE>
</KEY>
...
<KEY name="contents">
<MULTIPLE>
<SINGLE>
<KEY name="type">
<VALUE>string</VALUE>
</KEY>
...
<KEY name="license">
<VALUE>string</VALUE>
</KEY>
</SINGLE>
</MULTIPLE>
</KEY>
</SINGLE>
</MULTIPLE>
</KEY>
</SINGLE>
</MULTIPLE>
</RESPONSE>
|
Bisher
habe ich einen Parser erstellt, der folgende Struktur parst:
|
Quellcode
|
1
2
3
4
5
|
<?xml version="1.0" encoding="UTF-8" ?><RESPONSE>
<MULTIPLE>
<SINGLE>
</SINGLE> <SINGLE>
</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
müsste da nicht
|
Quellcode
|
1
|
- (void)setValue:(id)value forKey:(NSString *)key
|
funktionieren, und du als Value den neuen Array nimmst und als Key sozusagen das SINGLE Element und diesem dann dadurch den Array zuweist?
[window close]