我一直试图弄清楚这几个星期,我什么也没有得到。我正在使用ASIHTTPRequest,并且成功将数据发送到服务器,现在我需要获取响应XML,解析它并将这些元素保存到每个标记的NSString中,以便将其发布到服务器。有没有人有关于如何做到这一点的想法?如何检测HTTP响应,解析xml并保存到NSString?
回答
从查看How to Use页面,我认为你想要做的是实现方法,可以在请求完成时调用。例如,假设您有一个方法done:
,您希望在请求完成时调用它。您可以设置方法对您的要求“已完成”选择:
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
[request setDelegate:self];
[request setDidFinishSelector:@selector(done:)];
后来的后来,你实现done:
方法:
- (void)done:(ASIHTTPRequest *)request
{
NSString *response = [request responseString];
}
这一切都是假设你异步发送请求;如果您使用的是同步呼叫,则可以在请求上使用responseString
属性。
谢谢。现在正在工作 – timothy5216 2009-09-21 20:26:17
上面的代码存在错误。应该是@selector(requestDone),只是说。 – Jordan 2009-09-21 20:39:45
@Jordan - 谢谢,更正 – Tim 2009-09-21 21:26:17
如果您有其他不重要的XML解析需求,请为iPhone获取XML库的副本。
我以前使用过Google的GDataXMLNode,但我可能会在将来的工作中使用KissXML,因为它更接近NSXML(不幸的是,它并没有为iPhone发货)。
下面就来解析出响应的方式,在这里我找您通常会从一个Rails服务器发现错误,沿着线:
<errors><error>Description of what went wrong</error></errors>
你可以看到,我得到了“请求'从库中返回对象,并将响应字符串提供给GDataXMLDocument。
GDataXMLDocument* root = [[GDataXMLDocument alloc] initWithXMLString:[request responseString] options:0 error:nil];
// Parse the error strings
NSArray* errors = [root nodesForXPath:@"//errors/error" error:nil];
// What is the first error string.... etc......
NSString* firstError = [[errors objectAtIndex:0] stringValue];
返回的数组在这里包含一个与XML中的路径相匹配的节点列表。如果您不熟悉XPath,那么学习起来并不难,对于从XML响应中提取数据非常有用。针对数组中返回的元素调用stringValue将返回上例中元素之间的文本。
您当然可以用返回的XML数据填充字典等。合理?
是的它是有道理的。我现在得到它 – timothy5216 2009-09-21 20:22:52
我试过这个,它不解析XML它只是返回null – timothy5216 2009-09-22 17:08:27
等待没关系。我忘了更改nodesForXPath – timothy5216 2009-09-22 17:15:10
- 1. 如何从Http响应解析XML Android
- 2. 如何解析xml响应?
- 3. Xml解析NSString到NSInteger
- 4. XML响应解析
- 5. 解析XML响应
- 6. 解析XML响应
- 7. 解析XML响应
- 8. Perl如何解析HTTP响应内容
- 9. 如何解析C中的HTTP响应?
- 10. 解析XML响应,并在黑莓
- 11. 如何使用HTTP POST获取xml解析响应
- 12. 如何检测http响应代码?
- 13. 如何正确解析此xml响应
- 14. 如何使用jQuery解析XML响应
- 15. 如何解析URI中的XML响应
- 16. 如何从XML响应解析JSON
- 17. 解析分块HTTP响应
- 18. 解析Chunked HTTP/1.1响应
- 19. Jmeter HTTP响应解析
- 20. Angular2解析HTTP响应
- 21. 解析HTTP JSON响应 - C#
- 22. 解析HTTP:响应对象
- 23. 解析http-multipart响应
- 24. PowerShell解析xml并保存更改
- 25. 解析XML并保存数据
- 26. 的Python解析XML并保存为txt
- 27. NSString的内存泄露的XML解析
- 28. 解析两个XML文件并保存到一个xml文件
- 29. 无法保存对数据库的XML解析响应
- 30. Laravel Guzzle解析XML响应
你可以给一个代码示例吗? – 2009-09-21 18:39:04