将Html解析为NSDictionary

时间:2015-12-03 09:05:52

标签: ios objective-c xml rss hpple

我正在尝试使用PreUpdate阅读RSS,这没关系。

这是从此RSS返回的Xml:http://www.mymovies.it/cinema/xml/rss/?id=roma

(对于没有点击链接的懒人,我留下一个摘录:))

NSXMLParser

目标是获取元素中的信息 <item> <title>Dio esiste e vive a Bruxelles</title> <link> http://www.mymovies.it/film/2015/letoutnouveautestament/ </link> <guid isPermaLink="true"> http://www.mymovies.it/film/2015/letoutnouveautestament/ </guid> <description> <a href= "http://www.mymovies.it/film/2015/letoutnouveautestament/" title="Dio esiste e vive a Bruxelles" alt="DIO ESISTE E VIVE A BRUXELLES"" target="_blank"> <img src= "http://www.mymovies.it/filmclub/2015/05/113/mini.jpg" align="left" style="border:solid 1px #aeaeae; padding:3px; float:left; margin-right:3px; margin-top:3px;"/> </a><b>Dio c'è, e vive a Bruxelles</b><br /> <![CDATA[...]]> <![CDATA[...]]> <![CDATA[...]]> <![CDATA[...]]> <![CDATA[...]]> <![CDATA[...]]> <span style="background-color:Green; padding:2px; color:White; font-size:9px; font-weight:bold;">Consigliato: Sì</span> <br /> Regia di <a href="http://www.mymovies.it/biografia/?r=7593">Jaco Van Dormael</a>. Con <a href="http://www.mymovies.it/biografia/?a=199455">Pili Groyne</a>, <a href="http://www.mymovies.it/biografia/?a=70842">Benoît Poelvoorde</a>, <br /> Genere <a href= "http://www.mymovies.it/film/commedia/" title="Film commedia" target="_blank">Commedia</a> - Lussemburgo, Francia, Belgio, <a href= "http://www.mymovies.it/film/?anno=2015" title="Film 2015" target="_blank">2015</a>. Durata 113 minuti circa.<br/><br/> <p style="text-align:justify; margin:0px; padding:0px;" >Dio esiste e vive a Bruxelles con una moglie timorosa e una figlia ribelle. Il figlio, più celebre di lui, è fuggito molti anni prima per conoscere gli uomini più da vicino, morire per loro e lasciare testimonianza e testamento ai suoi dodici apostoli. Egoista e bisbetico, Dio governa il mondo da un personal computer facendo letteralmente il bello e il cattivo tempo sugli uomini. Ostacolato da Ea, decisa a seguire le orme del fratello e a fuggire il 'suo regno', la bambina si 'confronta' con JC (Jesus Christ) ed evade dall'oblò della lavatrice. Espulsa dentro una lavanderia self-service infila la via del mondo, recluta sei apostoli e si prepara a combattere l'ira di Dio, a cui ha manomesso il computer e di cui ha denunciato il sadismo, spedendo agli uomini via sms la data del loro decesso.</b><br /><br /> <b>A Roma: </b><br /> - <a href= "http://www.mymovies.it/cinema/roma/4912/" target="_blank">Cinema Mignon</a> (15:30 - - - 17:40 - - - 20:10 - - - 22:30) <br /> - <a href= "http://www.mymovies.it/cinema/roma/5255/" target="_blank">Cinema Eden Film Center</a> (15:00 - - - 17:30 - - - 19:40 - - - 22:10) <br /> - <a href= "http://www.mymovies.it/cinema/roma/20401/" target="_blank">Cinema Uci Cinemas Roma Est</a> (19:30 - - - 22:10) <br /> - <a href= "http://www.mymovies.it/cinema/roma/6882/" target="_blank">Cinema Uci Cinemas Parco Leonardo</a> (16:40 - - - 19:15 - - - 21:50) <br /> <div style="background-color:#D6D6D8; padding:3px;" ><a href= "http://www.mymovies.it/cinema/roma/provincia/?f=84872" title="Orari e programmazione DIO ESISTE E VIVE A BRUXELLES" target="_blank">Orari e Programmazione</a> | <a href= "http://www.mymovies.it/film/2015/letoutnouveautestament/" title="Recensione Dio esiste e vive a Bruxelles" target="_blank">Recensione</a> | <a href= "http://www.mymovies.it/film/2015/letoutnouveautestament/rassegnastampa/" title="Critica Dio esiste e vive a Bruxelles" target="_blank">Critica</a> | <a href= "http://www.mymovies.it/film/2015/letoutnouveautestament/trailer/" title="Trailer Dio esiste e vive a Bruxelles" target="_blank">Trailer</a> | <a href= "http://www.mymovies.it/film/2015/letoutnouveautestament/poster/" title="Locandina Dio esiste e vive a Bruxelles" target="_blank">Locandina</a></div><br /><br /> </description> <category>film</category> <category>recensioni</category> <category>critica</category> <category>trailer</category> <category>locandine</category> <category>cinema</category> <category>di Roma</category> </item> ,尤其是有关Cinema时间表的信息

<description>

输出应为: Cinema Mignon(15:30 - - - 17:40 - - - 20:10 - - - 22:30)

我正在尝试使用库 Hpple ,但问题在于:

A Roma: </b><br /> - 
<a href= "http://www.mymovies.it/cinema/roma/4912/" target="_blank">Cinema Mignon</a> (15:30 - - - 17:40 - - - 20:10 - - - 22:30) <br /> - 
<a href= "http://www.mymovies.it/cinema/roma/5255/" target="_blank">Cinema Eden Film Center</a>(15:00 - - - 17:30 - - - 19:40 - - - 22:10) <br /> - 
<a href= "http://www.mymovies.it/cinema/roma/20401/" target="_blank">Cinema Uci Cinemas Roma Est</a> (19:30 - - - 22:10) <br /> - 
<a href= "http://www.mymovies.it/cinema/roma/6882/" target="_blank">Cinema Uci Cinemas Parco Leonardo</a> (16:40 - - - 19:15 - - - 21:50) <br /> - 
<a href= "http://www.mymovies.it/cinema/roma/20642/" target="_blank">Cinema Uci Cinemas Porta di Roma</a> (21:50) <br /> - 
<a href= "http://www.mymovies.it/cinema/roma/5247/" target="_blank">Cinema Greenwich</a> (16:00 - - - 18:15 - - - 20:30 - - - 22:40)

-(void)parserDidEndDocument:(NSXMLParser *)parser { //feeds is an NSMutableArray that has all information from Xml NSString *descr = [[feeds objectAtIndex:0] valueForKey:@"description"]; //this is not null NSData *data = [descr dataUsingEncoding:NSUTF8StringEncoding]; TFHpple *doc = [[TFHpple alloc] initWithHTMLData:data]; NSArray *elements = [doc searchWithXPathQuery:@" "]; ???????? 我应该写什么?没有课程或内容或其他东西,它可以让我识别我需要的东西......

谢谢!

2 个答案:

答案 0 :(得分:2)

我做了同样的事情,我使用了this pod库。

答案 1 :(得分:2)

难道你不能只解析整个XML然后使用正则表达式或类似方法来解析“description”标签的内容吗?

对于“http://www.mymovies.it/cinema/roma/4912/"target =”_ blank“&gt; Cinema Mignon(15:30 - - - 17:40 - - - 20:10 - - - 22:30)

你会有类似的东西(我只是在“/”之间编写正则表达式,而不用担心你使用的是哪种语言。只是为了澄清,'/'是一个转义'/')

/&LT(?); / A&GT;(?)/

在正则表达组1中你会找到“Cinema Mignon”,而在第2组你会发现“(15:30 - - - 17:40 - - - 20:10 - - - 22:30)”。

常规exp。可以进一步改进以直接提取时间表。