Я новичок в программировании для iPhone, однако я уже некоторое время исследую свою проблему и не смог найти решение ...
По сути, я пытаюсь проанализировать URL-адрес, который я не контролирую, и который имеет следующую требуемую информацию в своей странице Источник:
<tr style=" ">
<td valign="top" style=" ">
<p style=" ">
4/10/2011
</p>
</td>
<td valign="top" style=" ">
<p style=" ">
-18
</p>
</td>
<td valign="top" style=" ">
<p style=" ">
21%
</p>
</td>
<td valign="top" style=" ">
<p style=" ">
39%
</p>
</td>
<td valign="top" style=" ">
<p style=" ">
45%
</p>
</td>
<td valign="top" style=" ">
<p style=" ">
54%
</p>
</td>
</tr>`
После правильного создания соединения с сайтом я собираю свои данные и пытаюсь проанализировать:
//This method will be called several times as the data arrives
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[xmlData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
/*
//We are just checking to make sure we are getting the XML
NSString *xmlCheck = [[[NSString alloc] initWithData:xmlDat encoding:NSUTF8StringEncoding] autorelease];
NSLog(@"xmlCheck = %@", xmlCheck);
//Check was Successful!
*/
//Create the parser object with the data received from the web service
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:xmlData];
[parser setDelegate:self];
//Tell it to start parsing - the document will be parsed and the delegate of NSXMLParser will get all of
//its delegate messages sent to it before this line finishes execution - it is blocking
[parser parse];
//The parser is done (it blocks until done), you can release it immediately
[parser release];
}
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *) qName
attributes:(NSDictionary *) attributeDict
{
NSLog(@"StartedParsing");
//if ([elementName isEqualToString:@"tr"]) {
if (elementName) {
NSLog(@"found element!");
titleString = [[NSMutableString alloc] init];
}
}
Вы заметите, что сначала я попытался найти элемент 'tr', но затем переключился на поиск любого элемента в URL. В мое окно консоли ничего не выводится, что заставляет меня думать, что мой парсер не находит никаких элементов.
Теперь, если я попытаюсь использовать тот же код на следующем веб-сайте: http://ax.itunes.apple.com/WebObjects/MZStoreServices.woa/ws/RSS/topsongs/limit=10/xml, будет найдено несколько различных элементов. Это заставляет меня думать, что URL-адрес может быть в определенном формате. Может кто-нибудь помочь мне ??
Заранее спасибо!
P.S. - Я также реализовал функции синтаксического анализатора foundCharacters и didEndElement, но не смог их использовать, так как мой анализатор, похоже, не находит никаких элементов ...