imはsub_categoryである子データを解析しようとしていますが、親カテゴリの関連するsub_categoryのみを表示します。私は親要素のデータを解析するのには成功しましたが、子要素を解析する方法に問題がありました。子要素のデータを親要素の子要素から取得する
- (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;
}
}
とXMLファイルこの
<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>
のようなもので、私はEvent Driven XML Parsingについて調査し、また、スレッドxml-parse-only-certain-child-elementsの1からGUDの参照を見つけることが、最終イムでまだかなり程度混同されてXMLとパースするもの。私はラマー用語が必要かもしれません。そして、私のパーシングの仕方を知りたい。
私はこれをこの部分までやったことがあります。ちょうど今失っているのは、 タグ内の子データを私の親ビューコントローラから私の子ビューコントローラに渡すことです。 –
次にsubcatの配列を作成し、その配列をdataDictにsubcatキーを使って保存します。 –
更新された回答を参照してください。これでdataArrayにdataDictが1つあります。そこからsub_catキーを使ってsub_cat配列を得ることができます。次に、ビューコントローラに渡すことができます。 –