iphone - пропустить раздел данных при загрузке? - PullRequest
2 голосов
/ 26 мая 2011

В настоящее время я использую 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 Ответ

2 голосов
/ 26 мая 2011

Преобразование окончательных NSData в строку NSS:

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

Тогда вам нужно начать разбивать эту строку. Вот пример получения первой порции:

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

Затем разделите первое:

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

Вы должны быть в состоянии выяснить остальное с помощью описанных выше методов.

...