3

接收 xml 文件的内容时遇到了一点问题(使用 TouchXML)。

我的第一个查询效果很好,看起来像这样:

NSString *url = [NSString stringWithFormat:STATION_ID, latitude, longtitude];
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error:nil];
NSLog(@"%@",rssParser);

所以这个日志给了我完整的 XML 文件。

之后,我尝试了另一种方法:

NSString *url = [NSString stringWithFormat:WEATHER_URL, [positionInformation objectForKey:@"stationId"]];
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error:nil];
NSLog(@"%@", rssParser);

但我得到的日志是(空)。登录 URL 字符串为我提供了正确的 URL,没有空格或其他内容,例如 URL 日志如下所示:

NSString *url = [NSString stringWithFormat:WEATHER_URL, [positionInformation objectForKey:@"stationId"]];
NSLog(@"%@", url);

调试器控制台中的结果是

http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=KCASUNNY19

用我的浏览器查看这个文件似乎没问题。有谁知道怎么回事??????

我也尝试过,首先通过 stringWithContentsOfURL 获取此 URL 的内容,但这也不起作用。

4

4 回答 4

2

这家伙遇到了同样的问题:http ://www.iphonedevsdk.com/forum/iphone-sdk-development/15963-problem-initwithcontentsofurl.html 。看起来 Weather Underground 的 API 期待用户代理并在没有看到时返回 500 HTTP 响应。您可以使用-initWithData:options:error:CXMLDocument 来传递您使用 NSMutableURLRequest 获得的数据。

于 2010-02-02T17:36:52.360 回答
0

您应该尝试使用 initWithContentsOfURL:options:error: 的错误参数。创建一个 NSerror *object,然后将其传入:

NSError      *error;
CXMLDocument *rssParser = [[CXMLDocument alloc] initWithContentsOfURL:[NSURL URLWithString:url] options:0 error: &error];

如果您没有得到 rssParser 对象,请检查该错误。

于 2010-01-23T13:24:41.340 回答
0

我将此 xml 文件的内容复制到我自己的服务器并更改了 url 路径。这工作正确,所以我认为阅读这个“.asp”文件有问题。

唔。但它的 XML 内容,很奇怪。

//编辑:我在我的服务器上创建了一个小 php 文件,它返回“asp”文件的内容:

<?php
  echo file_get_contents("http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=KCASANFR70");
 ?>

阅读我的脚本内容是可行的,但这种解决方法不是我想要的。

哦该死的=/

于 2010-01-23T14:14:53.133 回答
0

您确定您的 URL 字符串已正确编码,以便问号被解释为查询吗?在使用dataUsingEncodingURLstringUsingEncoding初始化rssReader.

于 2010-01-26T03:06:12.517 回答