nel tentativo di analizzare i dati secondari che sono sub_category e mostrarli, ma mostreranno solo la sottocategoria pertinente della categoria padre. Ho avuto successo nell'analisi dei dati dell'elemento genitore ma ho avuto un problema su come analizzare l'elemento figlio.Recupero dei dati di Elemento figlio dalla controparte madre
- (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;
}
}
e il file XML è come questo
<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>
ed io stato occupando circa il Event Driven XML Parsing e trovare anche un riferimento gud da uno dei fili xml-parse-only-certain-child-elements, ma alla fine im ancora piuttosto confondere su l'XML e le cose da analizzare. Potrei aver bisogno di un termine Lamer. E vorrei sapere come eseguire la mia parte di parsing.
ho fatto questo fino a questa parte, mi manca solo ora sta passando i dati figlio che si trovano all'interno del tag dal mio controller di visualizzazione genitore al mio controller di visualizzazione figlio. –
quindi creare una matrice di subcat e salvare quell'array in dataDict utilizzando la chiave subcat. –
vedere la risposta aggiornata. Ora avrai un dataDict in dataArray. da cui è possibile ottenere l'array sub_cat utilizzando la chiave sub_cat. Quindi puoi passarlo al tuo controller di visualizzazione. –