2015-01-03 137 views
0

我正在使用Cocoapods中的MWFeedParser解析新聞RSS源。精美的作品。在RSS中處理HTML XML解析器

但是,當新聞項目的描述包含HTML(例如視頻嵌入)時,我不知道如何處理它。 Feed URL爲:DCI News Feed

以下是來自Feed的2條新聞。第一個是不會給我帶來麻煩的基本項目。第二個包含嵌入YouTube視頻的HTML。它使description屬性顯示原始文本。我想識別HTML並沒有顯示它,但是顯示HTML之後的實際描述(在這種情況下)。

沒有HTML:

     <item> 
          <title>12 drum corps who celebrated Christmas in July</title> 
          <description> 

It�s the time of year for festive lights, merry music, and great shopping deals in stores and online. As you get set to celebrate another holiday season, you might be surprised to find that sounds of the Christmas season have long been hea...</description> 
          <link>http://www.dci.org/news/view.cfm?news_id=5571dc79-6940-42e6-a435-b4893fccc133</link> 
          <news_date>2014-12-17T10:47:00-06:00</news_date>        
         </item> 

HTML:

<item> 
          <title>2014 Open Class World Championship video sampler</title> 
          <description>&lt;div align=&quot;center&quot;&gt;&lt;iframe width=&quot;620&quot; height=&quot;349&quot; src=&quot;//www.youtube.com/embed/fBLPYhHatGg?list=PL-1dy9pmiSAS0Z0iTONfBIJOfoewGoCvI&quot; frameborder=&quot;0&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt; 

The first corps to take the field during the Prelims competition...</description> 
          <link>http://www.dci.org/news/view.cfm?news_id=0a92bb20-9187-4689-ae92-fbe1a5a631f6</link> 
          <news_date>2014-12-17T01:24:00-06:00</news_date>        
         </item> 

回答

0

我要砍起來什麼,我想你從我自己的RSS解析代碼所需要的,因爲沒有其他答案。隨時接受另一個答案,因爲我沒有時間來測試這個。

在我的代碼,原<description>字符串被塞進NSString* informativeText,除非沒有說明,在這種情況下,我的東西到<title>informativeText所以它不是空的。以下是:

NSAttributedString* infoString = 
    [[NSAttributedString alloc] initWithHTML: 
    [informativeText dataUsingEncoding:NSUnicodeStringEncoding] documentAttributes:nil]; 

後,您可以使用infoString.string到NSAttributedString的可讀文本轉換爲純的NSString。

如果您保留使用initWithHTML創建的NSAtributedString,您通常可以在NSTextView(OSX)中顯示它的合理呈現。