我正在尝试开发一个读取ePub文件的iPhone应用程序。有没有什么框架可以用来开发它呢?我不知道如何读取这种文件格式。我尝试使用NSXML Parser解析一个带有.epub扩展名的示例文件,但失败了。
发布于 2010-01-10 02:28:00
EPUB格式汇集了一系列不同的规范/格式:
规范看起来有点令人望而生畏,但实际上一旦你掌握了基础知识(解压缩、解析XML),它就不是特别困难或复杂。
您需要了解如何下载EPUB,将其解压缩到某个位置,解析清单,然后显示相关内容。
如果你刚开始的话有一些建议:
要显示内容,现在只需使用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。将它们存储在NSDictionary中,其中键是id,对象是href。
b)查看<spine>中的第一个<itemref>。它有一个idref属性,该属性对应于(a)中的一个It。在NSDictionary中查找该id,您将得到一个href。
c)这是向用户展示的第一章的文件。计算出完整路径(提示:您将zip文件解压到的位置(3)加上(6)中OPF文件的基目录)
8)使用fileURLWithPath:创建NSURL,其中路径是从(7c)开始的完整路径。使用您在(1)中创建的UIWebView加载此请求。
您将需要实现前进/后退按钮或滑动或其他东西,以便用户可以从一个章节移动到另一个章节。使用<spine>确定下一步显示哪个文件- XML中的<itemrefs>按照读者应该看到的顺序显示。
发布于 2009-09-07 09:44:09
显然,EPUB“仅仅”是一种XML格式,所以如果您有一个xml解析器和the spec,那应该没问题。
加上a little tuto?玩得开心!
编辑:你也可以阅读一些代码here,这是为了生成epub,而不是阅读他们,但代码可能是有用的。
再次编辑:并在右边栏中看到相关问题的链接,在支持ePub的免费电子书阅读器的答案中有一些链接。
编辑3:您应该在编辑问题时添加评论,以便回答您的人可以继续讨论(如果您不评论,我们不会注意到您的编辑)。
因此,解析失败是因为您没有阅读规范或有关Stack Overflow的相关问题……*.epub文件是一个压缩文件夹,其中包含xml文件,而不是纯XML。
发布于 2009-09-07 18:32:23
我通读了一遍本教程(需要免费注册,抱歉),它给了我一个很好的ePub介绍。deverloperWorks tutorial here
我强烈建议您查看一些XML处理库。如果您只想从XML文件中获取特定信息,那么您可以选择正确的解析策略。
https://stackoverflow.com/questions/1388467
复制相似问题