1

所以我使用这里的教程构建了一个 XML 解析器:http: //www.codeproject.com/Articles/248883/Objective-C-Fundamentals-NSXMLParser

我的问题是我调用的 XML 文件需要一个查询字符串参数。一个示例 url 将类似于:

http://domain.com/xml.php?id=00idcode00

如果没有id=XML 文件,则只返回一个 XML 元素<error>No id specified</error>;指定了 id 的 XML 文件返回 50 个奇怪的 XML 元素。

我的问题是,无论我尝试什么,XML 文件总是返回<error>. 如何让 NSURL 使用查询字符串?

这是我的代码:

NSString *someId = @"00idcode00";
NSString *urlString = [NSString stringWithFormat:@"http://domain.com/xml.php?id=%@", someId];
NSURL *url = [NSURL URLWithString:urlString];

parser=[[NSXMLParser alloc] initWithContentsOfURL:url];
[parser setDelegate:self];
[parser parse];

NSLog(@"query: %@",[url query]);

这个 NSLogs 如下:

Started element error
Found an element named: error with a value of: No id specified.
query: id=00idcode00

query我输出of的最后一行url暗示 NSURL 具有正确的查询字符串,但 XML 文件的响应表明 NSURL 没有使用查询字符串。

有人可以帮忙吗?

4

1 回答 1

2

首先构建字符串,然后构建 URL。

NSString *someId = @"00idcode00";
NSString *urlString = [NSString stringWithFormat:@"http://domain.com/xml.php?Id=%@", someId];
NSURL *url = [NSURL URLWithString:urlString];

并且错误状态查询参数是Id,不是id

于 2012-10-31T16:56:49.530 回答