php - iOS应用程序需要POST到PHP脚本,然后解析返回的XML

标签 php iphone ios xml parsing

我有一个图像数据库,存储在一个表中,其中包含“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/

相关文章:

php - 如何使用 PHPMailer 延迟发送邮件多天?

iphone - 异常退出,信号 5 : Trace/BPT trap: 5

iphone - 在将其上传到应用商店之前获取 iTunes 链接的 ID

iphone - 如何在 iPhone 中暂停异步任务?

ios - 在 iOS 上无需按按钮即可进行语音命令

php - 范围时间与 php 中的间隔

javascript - 加密后检查空字段

javascript - jTable如何获取选定行数据

iphone - CGAffineTransform问题

ios - 将数组的数组保存为用户默认值