如何让initWithContentsOfURL等待动态生成的xml页面?

时间:2011-04-23 18:32:36

标签: iphone objective-c xml nsxmlparser initwithcontentsofurl

我正在尝试将查询作为URL的一部分发送以获取XML文件,然后尝试使用NSXMLParser和initWithContentsOfURL解析XML文件。但是解析器无法解析文件。我使用相同的文件测试了解析器,但这次文件保存在服务器上(它没有生成)并且工作得很好,所以我知道它不是解析器的问题。

我开始认为它不会解析它,因为我需要在尝试解析之前加载文件,或者给initWithContentsOfURL时间来加载内容。所以我尝试将这些内容放在NSString和NSData中,并使用sleep函数以及使用块,但这也不起作用。

解决这个问题的最佳方法是什么?

以下是一些代码:

NSString *surl = [NSString stringWithFormat:@"http://lxsrv7.oru.edu/~maria_hernandez/query.xml"];
url = [NSURL URLWithString:surl];
NSString *curl = [[NSString alloc] initWithContentsOfURL:url];

NSLog(@"URL: %@", surl);
NSLog(@"URL Content: %@", curl);

SXMLParser *xmlParser = [[NSXMLParser alloc] initWithData:receivedData];

//Other stuff we have tried:
NSURLRequest *theRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:surl] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0];
NSURLResponse =  nil;
NSError = nil;
receivedData = [NSURLConnection sendSynchronousRequest: theRequest returningResponse: &theResponse error: &error];

如果您有更多问题或希望查看更多代码,请与我们联系。 谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试为实现NSXMLParserDelegate的NSXMLParse设置委托,该委托具有用于解析文档的事件

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSXMLParser_Class/Reference/Reference.html