我有一个存储在具有“ ImageName”,“ ImageCaption”和“ EventName”等列的表中的图像数据库。

我想查询并获取具有特定“ EventName”(由用户选择)的所有图像,如下所示:

$EventName = $_POST['EventName'];
$query = "SELECT * from ImageGalleryTable WHERE EventName = '". $EventName . "'";


棘手的是,用户选择不是来自HTML表单,而是来自iPhone App。这是我的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,在那里一切都很干净。该应用程序的POST也可以工作-因此一切都很好。

所以我的问题是:我该如何解析这个吸盘?

我已经使用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 App需要POST到PHP脚本,然后解析返回的XML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18140448/

10-09 08:48
查看更多