我正在try 开发一个iPhone应用程序来读取ePub文件.有没有可用的框架来开发这一点?我不知道如何阅读这种文件格式.我试图使用NSXML Parser解析扩展名为.epub的示例文件,但失败了.
我正在try 开发一个iPhone应用程序来读取ePub文件.有没有可用的框架来开发这一点?我不知道如何阅读这种文件格式.我试图使用NSXML Parser解析扩展名为.epub的示例文件,但失败了.
EPUB格式汇集了一系列不同的规范/格式:
规范看起来有点令人望而生畏,但实际上,一旦掌握了基础知识(解压缩、解析XML),就不会特别困难或复杂.
您需要了解如何下载EPUB,将其解压缩到某个位置,解析 list ,然后显示相关内容.
如果你刚刚开始,有一些建议:
要显示内容,目前只需使用UIWebView
即可.
下面是您的代码的高级逐步介绍:
1)创建带有UIWebView
的视图
2)下载EPUB文件
3)使用上面链接的zip库将其解压缩到应用程序的Documents文件夹中的子目录
4)使用上面链接的TBXML在META-INF/container.xml
处解析XML文件(如果该文件不存在,则EPUB无效
5)在该XML中,找到媒体类型为application/oebps-package+xml
的第一个"根文件".这是本书的OPF文件.
6) 解析OPF文件(也是XML)
7)现在你需要知道这本书的第一章是什么.
a)<manifest>
元素中的每个<item>
具有ID和HREF.将这些存储在AN NSDictionary
中,其中密钥是ID,对象是HREF.
b)看看<spine>
名中的前<itemref>
名.它具有与(A)中的一个ID相对应的idref属性.查一下NSDictionary
的身份证,你就会得到一张HREF.
c)这是向用户展示的第一章的文件.计算出完整路径(提示:您将zip文件解压缩到的位置(3)加上(6)中OPF文件的基目录)
8) 使用fileURLWithPath:
创建一个NSURL
,其中路径是(7c)的完整路径.使用(1)中创建的UIWebView
加载此请求.
您需要实现前进/后退按钮或滑动或其他功能,以便用户可以从一个章节移动到另一个章节.使用<spine>
确定下一步显示哪个文件-XML中的<itemrefs>
是按照读者应该看到的顺序显示的.