0

我有一个存储在表中的图像数据库,其中包含“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,那里的一切都很干净。来自应用程序的 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 代码来做——但它们似乎有冲突。我的意思是他们启动了一个请求过程,不是吗?

那么我到底应该怎么做呢?正确的方法是什么?

4

1 回答 1

1

还有其他创建“NSXMLParser”的方法,你想要:

parser = [[NSXMLParser alloc] initWithData:responseData];

这样您就可以提供已下载的 XML 数据。

于 2013-08-09T06:04:47.100 回答