XMLParser文件单独工作,但是当我把它放到我的项目中时,我没有遇到任何错误,但是我无法从URL中获取数据。我想,我的setDelegate不工作。我的xmlpar和打印功能正在工作,但其他人都没有工作。我不知道是什么事情?谁能帮帮我?
我的.h文件
#import <UIKit/UIKit.h>
@interface TestttxmlViewController : UIViewController <NSXMLParserDelegate>{
NSXMLParser * pars;
NSString * durum;
NSMutableArray *arr;
}
-(void)print;
-(void)xmlpar;
@end
- &gt;我的.m文件
#import "TestttxmlViewController.h"
- (void)viewDidLoad
{
[super viewDidLoad];
[self xmlpar];
}
-(void)xmlpar{
arr=[[NSMutableArray alloc]init];
NSURL * url =[[NSURL alloc]initWithString:@"http://www.milliyet.com.tr/D/rss/rss/Rss_36.xml"];
pars=[[NSXMLParser alloc]initWithContentsOfURL:url];
durum=[[NSString alloc]init];
[pars setDelegate:self];
[pars parse];
[self print];
}
-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if ([elementName isEqualToString:@"title"]) {
durum=elementName;
}
}
-(void)print{
NSLog(@"%@",arr);
}
-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
durum=@"";
}
-(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
if ([durum isEqualToString:@"title"]) {
[arr addObject:string];
}
}
@end
答案 0 :(得分:0)
这可能是一个疯狂的猜测,因为我没有使用NSXMLParser
,但我认为它在后台线程中解析。这意味着它可能还没有完成解析,你已经调用了一个方法来打印arr
的内容。
-(void)xmlpar{
//..
[pars parse];
[self print];
}
尝试在解析完成时调用的委托方法中调用print
方法,如果存在的话。
修改强>
查看文档后,尝试在parserDidEndDocument
方法
- (void)parserDidEndDocument:(NSXMLParser *)parser{
[self print];
}