首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读取ePub格式

读取ePub格式
EN

Stack Overflow用户
提问于 2009-09-07 09:37:59
回答 6查看 61.7K关注 0票数 104

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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-10 02:28:00

EPUB格式汇集了一系列不同的规范/格式:

  • one用于说明图书内容的外观(XHTML1.1+CSS的子集)
  • one用于定义列出组成该内容的所有文件的“清单”(OPF,这是一个XML文件)
  • one用于定义所有内容的打包方式(OEBPS:清单中所有内容的压缩文件加上一些额外文件)

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

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

如果你刚开始的话有一些建议:

  • parse xml
  • unzip

要显示内容,现在只需使用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>按照读者应该看到的顺序显示。

票数 314
EN

Stack Overflow用户

发布于 2009-09-07 09:44:09

显然,EPUB“仅仅”是一种XML格式,所以如果您有一个xml解析器和the spec,那应该没问题。

加上a little tuto?玩得开心!

编辑:你也可以阅读一些代码here,这是为了生成epub,而不是阅读他们,但代码可能是有用的。

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

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

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

票数 21
EN

Stack Overflow用户

发布于 2009-09-07 18:32:23

我通读了一遍本教程(需要免费注册,抱歉),它给了我一个很好的ePub介绍。deverloperWorks tutorial here

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1388467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档