- Registriert
- 13.09.04
- Beiträge
- 8.971
Moin moin,
ich quäle mich mal wieder mit dem XMLParser.
Ich habe eine XML Datei, die ich einlese… das klappt auch alles. Jedoch habe ich jetzt Unterelemente, die die gleichen Namen haben, wie die Oberelemente - man kann sich das wie Ordner vorstellen, die weitere Ordner beinhalten, die die selben Eigenschaften haben können wie die Oberordner.
Also:
Jetzt gehe ich die XML-Datei durch, lese die Elemente ein, lege für jedes Element ein neues Objekt in das Hauptarray, das u.a. "name" als String beinhaltet. Nun soll dazu ein weiteres Unterarray mit den Unterelementen angelegt werden, das dann in ebenfalls mit Objekten gefüllt und in das Hauptarray gelegt wird.
Um die Elemente einzutragen mache ich das mit
Leider ist "einObjekt" immer das Hauptobjekt aus dem Hauptarray und somit bekommt dann das Objekt "Hauptelement" in diesem Zug den Namen "Unterelement" zugewiesen, obwohl das natürlich quatsch ist.
Wie kann ich dies am verhindern, ohne die XML Datei zu verändern - ich möchte die Möglichkeit haben die Elemente unendlich weit zu untergliedern… Ich muss doch irgendwie herausbekommen können, ob ich in der zweiten Ebene von Elementen bin oder so…
ich quäle mich mal wieder mit dem XMLParser.
Ich habe eine XML Datei, die ich einlese… das klappt auch alles. Jedoch habe ich jetzt Unterelemente, die die gleichen Namen haben, wie die Oberelemente - man kann sich das wie Ordner vorstellen, die weitere Ordner beinhalten, die die selben Eigenschaften haben können wie die Oberordner.
Also:
Code:
<element>
<name>Hauptelement</name>
<unterelement>
<name>Unterelement</name>
</unterelement>
</element>
Jetzt gehe ich die XML-Datei durch, lese die Elemente ein, lege für jedes Element ein neues Objekt in das Hauptarray, das u.a. "name" als String beinhaltet. Nun soll dazu ein weiteres Unterarray mit den Unterelementen angelegt werden, das dann in ebenfalls mit Objekten gefüllt und in das Hauptarray gelegt wird.
Um die Elemente einzutragen mache ich das mit
Code:
if ([elementName isEqualToString:@"name"]){
[einObjekt setValue:currentElementValue forKey:elementName]; }
Leider ist "einObjekt" immer das Hauptobjekt aus dem Hauptarray und somit bekommt dann das Objekt "Hauptelement" in diesem Zug den Namen "Unterelement" zugewiesen, obwohl das natürlich quatsch ist.
Wie kann ich dies am verhindern, ohne die XML Datei zu verändern - ich möchte die Möglichkeit haben die Elemente unendlich weit zu untergliedern… Ich muss doch irgendwie herausbekommen können, ob ich in der zweiten Ebene von Elementen bin oder so…