当前位置:  开发笔记 > 前端 > 正文

阅读ePub格式

如何解决《阅读ePub格式》经验,为你挑选了3个好方法。

我正在尝试开发一个iPhone应用程序来读取ePub文件.有没有可用于开发此框架的框架?我不知道如何阅读这种文件格式.我尝试使用NSXML Parser解析扩展名为.epub的示例文件,但是失败了.



1> Euan..:

EPUB格式汇集了许多不同的规格/格式:

一说明书的内容应该是什么样的(XHTML 1.1 + CSS的一个子集)

一个用于定义"清单",列出构成该内容的所有文件(OPF,即XML文件)

一个用于定义所有内容的打包方式(OEBPS:清单中所有内容的zip文件以及一些额外的文件)

规范看起来有点令人生畏,但实际上,一旦你掌握了基础知识(解压缩,解析XML),它就不是特别困难或复杂了.

您需要了解如何下载EPUB,将其解压缩到某处,解析清单然后显示相关内容.

如果您刚刚开始,请注意以下几点:

解析xml

拉开拉链

要显示内容,请立即使用UIWebView.

以下是您的代码的高级步骤:

1)创建一个视图 UIWebView

2)下载EPUB文件

3)使用上面链接的zip库将其解压缩到应用程序文档文件夹中的子目录

4)META-INF/container.xml使用上面链接的TBXML 解析XML文件(如果此文件不存在,EPUB无效)

5)在这个XML中,找到第一个带有media-type的"rootfile" application/oebps-package+xml.这是本书的OPF文件.

6)解析OPF文件(也是XML)

7)现在你需要知道这本书的第一章是什么.

一个),每个元件具有ID和一个href.将它们存储在NSDictionary键为id且对象为href的位置.

B)先看第一个.它有一个idref属性,对应于(a)中的一个id.在那里查找那个id NSDictionary,你会得到一个href.

c)这是显示用户的第一章的文件.弄清楚完整路径是什么(提示:它是将zip文件解压缩到(3)的位置加上(6)中OPF文件的基本目录)

8)创建一个NSURLusing fileURLWithPath:,其中path是从(7c)开始的完整路径.使用UIWebView您在(1)中创建的请求加载此请求.

您需要实现前进/后退按钮或滑动等,以便用户可以从一个章节移动到另一个章节.使用它来确定接下来要显示的文件 - XML中的文件按照它们应该向阅读器显示的顺序排列.


令人遗憾的是,它只能为这个答案提供1个upvote
非常感谢Euan ...对于那些仍在寻找解决方案的人,我创建了一个样本并发布在http://ideveloperworld.blogspot.com/2011/02/epub-reader.html

2> p4bl0..:

显然EPUB"只是"一种XML格式,所以如果你有一个xml解析器和规范它应该没问题.

还有一点tuto?玩得开心!

编辑:你也可以在这里阅读一些代码,这是用于生成epub,而不是读取它们,但代码可能很有用.

再次编辑:在右侧边栏中看到相关问题的链接,支持ePub的免费电子书阅读器的答案中有一些链接.


编辑3:您应该在编辑问题时添加评论,以便回答您的​​人可以继续讨论(如果您不评论我们没有注意到您的编辑).

因此,解析失败是因为您没有阅读Stack Overflow上的规范或相关问题...*.epub文件是一个包含XML文件的压缩文件夹,而不是普通的xml.



3> yonkeltron..:

我读过这个教程一次(需要免费注册,对不起),它给了我一个很好的ePub介绍.deverloperWorks教程在这里

我强烈建议您查看一些XML处理库.如果您只想从XML文件中获取特定信息,那么您可以选择正确的解析策略.

推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有