我正在尝试解析以下 XML 文件:
但是当我解析它时:
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
currentElementName = elementName;
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([currentElementName isEqualToString:@"link"]) {
NSLog(@"Link: %@",string);
}
}
我得到以下 NSLOG:
Link: http://www.flickr.com/photos/114014058@N06/
Link:
Link: http://www.flickr.com/photos/114014058@N06/
Link:
Link:
Link: http://www.flickr.com/photos/114014058@N06/11865861164/
Link:
如您所见,我想要的 URL 没有出现,并且有一堆空 URL。
为什么?
谢谢!
编辑:
我尝试了 Rhythmic Fistman 的回答,但我得到的只是:
链接为(空)
最佳答案
尝试 didStartElement
回调。
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict;
当 elementName
是 @"link"
时,您的 url 应该在 attributeDict[@"href"]
中。
例如
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"link"]) {
NSLog(@"link is %@\n", attributeDict[@"href"]);
}
}
关于ios - 尝试解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21068086/