私はiPhone開発に不慣れです。XMLページを解析してコンテンツをテーブルビューに表示しています。XMLページの一部のブロックで子要素が欠落しています。子要素の場合、配列に値oを追加したいと思います。特定のブロックが好きではありません。私のXMLファイルは次のようなものです。
<entry>
<id>xxx </id>
<title>xxxxx</title>
<gd:ratings numRaters="2"/>
</entry> ..................................>first block
<entry>
<id>xxx </id>
<title>xxxxx</title>
</entry> ....................................>Second block
<entry>
<id>xxx </id>
<title>xxxxx</title>
<gd:ratings numRaters="2"/>
</entry> .....................................>Third block
gd:ratingsタグを解析し、その属性numRates値をテーブルビューに表示しています。numRatesの値を格納する可変配列があります。2番目のブロックが解析されるときに、gd:ratingsタグが含まれていないため、配列にオブジェクト「O」を追加する必要があります。値は属性タグに存在するため、コンテンツを取得して可変配列に追加するには、NSXMLパーサーのDidStartElementメソッドを使用します。
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
currentElement = [elementName copy];
if ([elementName isEqualToString:@"entry"]) {
entry = [[NSMutableDictionary alloc] init];
currentTitle = [[NSMutableString alloc] init];
currentDate = [[NSMutableString alloc] init];
NSLog(@"inside image1 ");
}else if([elementName isEqualToString:@"media:thumbnail"])
{ currentImage = [[NSMutableString alloc] init];
if(myUrl == nil){
myUrl = [NSString stringWithString:[attributeDict objectForKey:@"url"]];
}
[currentImage appendString:myUrl];
[stories1 addObject:currentImage];
myUrl=nil;
} else if([elementName isEqualToString:@"gd:rating"])
{
currentRating=[[NSMutableString alloc]init];
myRatings=[NSString stringWithString:[attributeDict objectForKey:@"numRaters"]];
[currentRating appendString:myRatings];
[stories2 addObject:currentRating];
}
}
エントリタグが25ブロックあり、その10ブロックにgd評価要素がないため、配列stories2配列には15個の値しかないため、テーブルビューに順番に表示できません。属性タグを取得する方法はありますか。 「見つかった文字」メソッドで。手伝ってください。ありがとう。