У меня есть XML, который имеет такую структуру:
<data>
<books>
<item>
<title>book1</title>
<author>author1</author>
</item>
<item>
<title>book2</title>
<author>author2</author>
</item>
</books>
<magazines>
<item>
<title>Mag1</title>
<author>author1</author>
</item>
</magazines>
<journals>
<item>
<title>Journal1</title>
<author>author1</author>
</item>
<item>
<title>Journal2</title>
<author>author2</author>
</item>
</journals>
</data>
Я использую табличное представление для отображения элементов каждой категории. Я планирую иметь табличное представление с колонками книг, журналов и журналов, и нажатие на них должно отображать только элементы под ними. То есть, если я нажимаю на книги, то должны отображаться только записи книг.
У меня есть это для разбора XML
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *) elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqual:@"books"]) {
flag=1;
}
if ([elementName isEqual:@"title"]) {
NSLog(@"found title!");
parsedString = [[NSMutableString alloc] init];
}
if ([elementName isEqual:@"author"]) {
NSLog(@"description found");
parsedString = [[NSMutableString alloc] init];
}
}
и
- (void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
{
if (flag==1){
if ([elementName isEqual:@"title"]) {
[headlines addObject:parseString];
[parseString release];
parseString = nil;
}
if ([elementName isEqual:@"author"]) {
[authors addObject:parsedString];
[parseString release];
parseString = nil;
flag=2;
}
}
}
Но это получает только первую запись книг и ничего больше.
Вместо установки флагов есть способ разбирать только между и
теги?
Спасибо.