You have to keep track of whether the parser is currently "inside" an entry
element or not.
For example, you can
add an integer property entryLevel
to the class,
set it initially to zero
and update it in didStartElement
and didEndElement
:
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qualifiedName attributes:(NSDictionary *)attributeDict
{
if ([elementName isEqualToString:@"entry"]) {
self.entryLevel++;
} else if ([elementName isEqualToString:@"title"] && self.entryLevel > 0) {
// title inside entry
}
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
if ([elementName isEqualToString:@"entry"]) {
self.entryLevel--;
}
}