この XML を Web から解析する必要があります。
<trasporto>
<condizioni id="0">
<data> </data>
<titolo> </titolo>
<testo> </testo>
<sezione> </sezione>
</condizioni>
<condizioni id="1">
<data> </data>
<titolo> </titolo>
<testo> </testo>
<sezione> </sezione>
</condizioni>
........
........
........
</trasporto>
そして、各条件からのフィールド、データ/タイトル/テスト/セツィオーネが必要です
これが私のコードです:
..............
//responseString contains the text fetched from the web
NSData *data = [responseString dataUsingEncoding:NSUTF8StringEncoding];
tbxml = [[TBXML alloc]initWithXMLData:data];
if (tbxml.rootXMLElement)
[self traverseElement:tbxml.rootXMLElement];
[tbxml release];
}
-(void) traverseElement:(TBXMLElement *)element {
NSMutableArray *dataArr = [[NSMutableArray alloc]init];
NSMutableArray *titoloArr = [[NSMutableArray alloc]init];
NSMutableArray *testoArr = [[NSMutableArray alloc]init];
NSMutableArray *sezioneArr = [[NSMutableArray alloc]init];
do {
NSLog(@"%@",[TBXML elementName:element]);
if (element->firstChild)
[self traverseElement:element->firstChild];
if ([[TBXML elementName:element] isEqualToString:@"trasporto"]) {
TBXMLElement *condizioni = [TBXML childElementNamed:@"condizioni" parentElement:element];
TBXMLElement *data = [TBXML childElementNamed:@"data" parentElement:condizioni];
TBXMLElement *titolo = [TBXML childElementNamed:@"titolo" parentElement:condizioni];
TBXMLElement *testo = [TBXML childElementNamed:@"testo" parentElement:condizioni];
TBXMLElement *sezione = [TBXML childElementNamed:@"sezione" parentElement:condizioni];
[dataArr addObject:[TBXML textForElement:data]];
[titoloArr addObject:[TBXML textForElement:titolo]];
[testoArr addObject:[TBXML textForElement:testo]];
[sezioneArr addObject:[TBXML textForElement:sezione]];
NSLog(@"data: %@",dataArr);// [TBXML textForElement:data]);
NSLog(@"titolo: %@",titoloArr);//[TBXML textForElement:titolo]);
NSLog(@"testo: %@",testoArr);//[TBXML textForElement:testo]);
NSLog(@"sezione: %@",sezioneArr);//[TBXML textForElement:sezione]);
// condizioni = condizioni -> nextSibling;
}
} while ((element = element->nextSibling));
}
しかし、この方法では、id=0の最初のcondizioniのみを解析できます。次の兄弟が見つからないようです。私の間違いはどこですか?!?