我有一个图像数据库,存储在一个表中,其中包含“ImageName”、“ImageCaption”和“EventName”等列。
我想做一个查询并抓取具有特定“EventName”的所有图像 - 由用户选择 - 像这样:
$EventName = $_POST['EventName'];
$query = "SELECT * from ImageGalleryTable WHERE EventName = '". $EventName . "'";
棘手的部分是,此用户选择不是来自 HTML 表单,而是来自 iPhone 应用程序内的。这是我的 Objective-C 代码:
NSString *myRequestString = [NSString stringWithFormat:@"EventName=%@", eventUserChose];
NSData *myRequestData = [NSData dataWithBytes:[myRequestString UTF8String] length:[myRequestString length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString: @"http://mydomain.com/GetGalleryImages.php"]];
[request setHTTPMethod: @"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
[request setHTTPBody: myRequestData];
NSURLResponse *response;
NSError *err;
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
NSString *content = [NSString stringWithUTF8String:[returnData bytes]];
NSLog(@"responseData: %@", content);
所有这些都有效:我通过 responseData
返回的数据很好 - 它是由我调用顶部的 PHP 脚本生成的 XML,并且那里的所有内容都是干净的。应用程序中的 POSTing 也可以工作 - 所以一切都很好。
所以我的问题是:我如何解析这个傻瓜?
我已经使用 NSXMLParser 完成了大量的解析(是的,我知道它不是最好的解析器 - 请不要在这里讨论那个 :-)) - 但是所有的 XML我的解析通常是从服务器准备好的 - 它不依赖于任何 POSTed 值,如果你明白我的意思的话。 通常我会这样进行解析:
NSURL *url = [NSURL URLWithString:@"http://mydomain.com/makeMyXML.php"];
parser = [[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser parse];
然后我就开始运行了。但在这里我必须发布一些东西 - 我认为我只能用我在顶部包含的 NSURLConnection
代码来做 - 然后我还必须解析它 - 我通常这样做与我包含的 NSXMLParser 代码有关 - 但它们似乎存在冲突。我的意思是他们都发起请求过程,不是吗?
那么我到底应该如何做呢?正确的做法是什么?
最佳答案
还有其他创建“NSXMLParser”的方法,您需要:
parser = [[NSXMLParser alloc] initWithData:responseData];
以便您可以提供已下载的 XML 数据。
关于php - iOS应用程序需要POST到PHP脚本,然后解析返回的XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18140448/