Ich versuche, die untergeordneten Daten zu analysieren, die sub_category ist, und zeige sie an, aber es wird nur die relevante Unterkategorie der übergeordneten Kategorie angezeigt. Ich war erfolgreich in der Analyse der Daten des Elternelements, aber ich habe ein Problem, wie das Kindelement zu analysieren.Abrufen von Daten des untergeordneten Elements von seinem übergeordneten Gegenstück
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"category"]){
dataCurrent = [dataFileHolder alloc];
}
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
currentList = [[NSMutableString alloc] initWithString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"name"]){
dataCurrent.nameOfCat = currentList;
}
if ([elementName isEqualToString:@"description"]){
dataCurrent.descriptionOfCat = currentList;
}
if ([elementName isEqualToString:@"image"]) {
dataCurrent.imageLink = currentList;
}
if ([elementName isEqualToString:@"category"]) {
[listPopulated addObject:dataCurrent];
dataCurrent = nil;
currentList = nil;
}
}
und die XML-Datei ist wie dies
<category>
<name>Food</name>
<description>food description</description>
<image> Link Here </image>
<sub_cat>
<sub_name>Sub name</sub_name>
<sub_desc>sub cat description</sub_desc>
<sub_image> Link </sub_image>
</sub_cat>
<sub_cat>
<sub_name>Sub name</sub_name>
<sub_desc>sub cat description</sub_desc>
<sub_image> Link </sub_image>
</sub_cat>
</category>
und ich über die Event Driven XML Parsing erforscht und auch eine gud Referenz von einem der Fäden xml-parse-only-certain-child-elements, aber am Ende im noch ziemlich verwirren finden das XML und das Parsing. Ich könnte einen längeren Begriff brauchen. Und möchte wissen, wie ich meinen Parsing-Teil mache.
Ich habe dies bis zu diesem Teil gemacht, ich vermisse jetzt gerade die Kind-Daten, die innerhalb des Tags von meinem Eltern-View-Controller zu meinem Kind View-Controller sind. –
Dann erstellen Array von Subcat und speichern Sie dieses Array in DataDict mit Subcat Key. –
siehe die aktualisierte Antwort. Jetzt haben Sie ein DataDict in DataArray. von dem Sie Ihr sub_cat Array mit dem Schlüssel sub_cat erhalten können. Dann können Sie es an Ihren View-Controller übergeben. –