iphone - 下载时跳过一段数据?

时间:2011-05-26 17:28:58

标签: iphone ios4 nsurlconnection nsxml

我目前正在使用NSURLConnection通过服务器上的php脚本从数据库下载一些日期。

连接正常,数据收到正确。但是,当我来解析数据时,我遇到了问题。

我目前正在尝试使用NSXMLParser来解析数据但是这个失败了,错误代码为4,我认为这是因为我检索的并不完全是XML。如果它完全是XML,那就可以了。

以下是检索数据的示例:


43534545-45345345-34534554|iPhone emulator|<provdoc>
<characteristic type="P1">
...
</characteristic>
</provdoc>

我想做的是将数据分成:

43534545-45345345-34534554

iPhone emulator

<provdoc>
<characteristic type="Profile1">
...
</characteristic>
</provdoc>

所以我猜我应该在接下来的数据中执行此操作,我需要知道如何将数据拆分为上述三个部分?

所以我最终得到两个字符串,第一个带有数字,第二个带有iPhone模拟器位,然后是可以通过NSXMLParser发送的数据。

任何人都可以指出我正确的方向,因为我需要你做到了吗?

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

    [self.responseData appendData:data];

}

1 个答案:

答案 0 :(得分:2)

将最终的NSData转换为NSString:

NSString *someString = [[NSString alloc] initWithData:hashedData encoding:NSUTF8Encoding];

然后你需要开始拆分那个字符串。以下是获取第一部分的示例:

NSRange end = [someString rangeOfString:@"<"];
NSString *str = [someString substringWithRange:NSMakeRange(0, end.location)];

然后分开第一个:

NSArray *initialItems = [str componentsSeparatedByString:@"|"];

你应该能够用上述技巧弄清楚其余部分。