从RSS源读取,然后存储图像到iPhone应用程序

时间:2011-05-23 16:57:43

标签: xml ios wordpress rss

希望有人可以提供帮助。我很欣赏这里有一些相似的问题,但对我来说还不够具体。

我正在自学iOS,因此决定从Wordpress网站编写一个简单的RSS阅读器应用程序。一切正常,但现在我想尝试将页面存储在iOS中以便在离线时阅读。认为这是学习如何编码和存储数据的好方法。

读取XML节点并存储标题,描述等都很好,这是有效的。我得到的问题是在Feed中嵌入了图像。如果我阅读并存储'content:encoded'XML信息,那么在webView中查看它可以正常工作,除非我在离线时除了图像之外的一切都会工作,因为这只是一个HTML参考。

我想我想

a)识别图像URL,然后将其从内容中删除:编码 b)下载并存储在我的阵列中,与帖子相关联 c)然后再次读出图像。

或者采用不同方法但效果相似的东西。

如果有一种方法可以添加一个新的XML'featureimage'节点或类似节点,我认为这相对简单,但我看不出怎么做。

非常感谢关于这一点的任何想法/指示,非常感谢。

1 个答案:

答案 0 :(得分:1)

我建议采用略有不同的方法,我认为应该让事情变得更容易:

  1. 识别图片:
  2. 您可以使用任何RegEx library for iOS来解析您的content:encoded信息;

    1. 下载图片:
    2. 使用ASIHTTPRequest或NSUURLRequest下载图片并将其存储在本地;

      1. 修改content:encoded信息:
      2. 修改<img>标记,使其src属性设置为本地存储图像(而不是外部图像);你可以使用与第1点相同的方法来做到这一点。换句话说,你有一个像:

        的图像
        `<img src="http://xxxx.yyy.zzzz/image.png" />`
        

        您可以将其更改为:

        `<img src="image.png" />`
        
        1. 在将HTML加载到UIWebView中时适当指定baseURL
        2. 如果在调用baseURL选择器时指定loadHTMLString:baseURL:,则将根据您指定的baseURL解析任何“本地”uri。如果您决定将图像存储在文档目录中,则可以执行以下操作:

          NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
          NSString *documentsDirectory = [paths objectAtIndex:0];
          [_label loadHTMLString:htmlString baseURL:[NSURL fileURLWithPath:documentsDirectory]];
          

          以便任何图像如:

          `<img src="localImage.png" />`
          

          将在本地检索。

          希望这有帮助。