我想开发一个iPhone应用程序来阅读ePub文件。有没有可用于开发这个框架的框架?我不知道如何阅读这种文件格式。我尝试使用NSXML Parser解析扩展名为.epub的示例文件,但失败了。阅读ePub格式
阅读ePub格式
回答
ePub格式汇集了一群不同规格/格式:
- 一个说这本书的内容应该是什么样子(XHTML 1.1的一个子集+ CSS)
- 一个定义列出组成该内容的所有文件(OPF,这是一个XML文件)的“清单”
- 定义如何打包所有内容(OEBPS:清单中所有内容的zip文件以及一些额外的文件)
规格看起来有点令人生畏,但实际上,一旦您掌握了基本知识(解压缩,解析XML),它不是特别困难或复杂。
您需要制定如何下载EPUB,将其解压到某处,解析清单,然后显示相关内容。
一些指针,如果你是刚刚起步:
要显示的内容只用一个UIWebView
现在。
这里有一个高层次步步为您的代码步:
1)创建一个具有UIWebView
2的图)下载EPUB文件
3)把它解压到一个子目录您应用的文档文件夹使用上面链接的zip库
4)使用TBXML解析XML文件META-INF/container.xml
(如果该文件不存在,EPUB无效)使用TBXML,链接上面
5)在此XML中,找到媒体类型为application/oebps-package+xml
的第一个“rootfile”。这是本书的OPF文件。
6)解析OPF文件(也XML)
7)现在,你需要知道这本书的第一章是什么。
a)每个<item>
中的<manifest>
元素都有一个id和一个href。将它们存储在NSDictionary
中,其中键是id,对象是href。
b)查看<spine>
中的第一个<itemref>
。它有一个idref属性,它对应于(a)中的一个id。在NSDictionary
中查找该ID即可获得href。
c)这是第一章显示用户的文件。找出完整路径(提示:无论你将压缩文件解压缩到(3)加上(6)中的OPF文件的基本目录),
8)使用fileURLWithPath:
创建NSURL
,其中路径是(7c)的完整路径。使用您在(1)中创建的UIWebView
加载此请求。
您需要实现向前/向后按钮或滑动或其他内容,以便用户可以从一章移动到另一章。使用<spine>
计算出下一个要显示的文件 - XML中的<itemrefs>
按它们应该显示给读者的顺序排列。
显然,EPUB“只是”一种XML格式,所以如果你有一个XML解析器和the spec它应该没问题。
加a little tuto?玩的开心!
编辑:你也可以阅读一些代码here,这是为了生成EPUB,不读它们,但代码可能是有用的。
再次编辑:请参阅右侧栏中的相关问题的链接,免费电子书阅读器的答案中有一些链接支持ePub。
编辑3:你应该添加注释,当你编辑你的问题所以人们谁回答,您可以继续讨论(如果你不评论我们没有注意到你的编辑)。
因此,解析失败,因为您没有阅读关于堆栈溢出的规范或相关问题...... * .epub文件是一个包含XML文件的压缩文件夹,而不是普通的xml。
我通读了本教程一次(需要免费注册,很抱歉),它给了我一个很好的ePub介绍。 deverloperWorks tutorial here
我强烈建议你看看一些XML处理库。如果您只是想从XML文件中获取特定信息,那么您可以选择正确的解析策略。
本教程是优秀的,是由谁撰写了许多可用的标准开源的ePub工具的人写的。这是一个快速阅读,并提供了一个完美的工作介绍到ePub格式。 –
我正在玩arround创建iphone应用程序的epub框架。
目前(我真的刚刚开始)我可以生成一个标题页面,并链接到章节。
我的做法是
- 使用QuickConnect的iphone框架作为 层(也许我改变的PhoneGap) 基本上允许JavaScript的 应用为iPhone应用程序
- 添加解压的EPUB作为一个的ressource到该项目
- 解析整个事情与一个自定义版本的epub。JS(在某处谷歌代码)
现在,我寻找到pageflip,某种GUI和次要可用性问题(保存当前页面beingviewed)
我的希望,给的你的想法如何开始
我已经使用了epub.js什么我得到了一个错误* XML解析错误:没有找到元素*位置行号1列号1.can你可以通过提供一些链接帮助我 – user969275
你的框架怎么了?你在哪里发表过它? – yasirmturk
Jonathan Wight(schwa)开发了一个ObjC解决方案,用于解析和显示iPhone上的ePub文档。它是他的TouchCode开源存储库的一部分。
请给我链接的TouchCode开源 – Hiren
http://code.google.com/p/touchcode/source/browse/Experimental/?r=e621eadd838d7733f5025e16733fccb967eb2325#Experimental%2FTouchBook –
或还有futurepress/epub.js(它通过Web浏览器读取epub和注释) – JinSnow
- 1. EPub阅读器XML?
- 2. 如何阅读.epub文件
- 3. iPhone - 阅读.epub文件
- 4. 高级ePub阅读器
- 5. 阅读EPUB文件时siegmann
- 6. 阅读格式90
- 7. 阅读JSON格式
- 8. 加载ePub - 简单的ePub阅读器问题
- 9. 转到页在EPUB阅读器(PageTurner)
- 10. Java swing中的Epub文件阅读器
- 11. 在Android中阅读.epub文件
- 12. Erro阅读Android中的epub文件
- 13. EPUB阅读器页面卷曲像iBook
- 14. 在ePub阅读器中设置uipageviewcontroller
- 15. PHP中的EPUB阅读器/查看器
- 16. 同时阅读Android上的epub文件
- 17. Android - epub读取.epub文件..
- 18. 阅读HITRAN文件格式
- 19. 如何阅读JSON格式
- 20. 文件阅读格式
- 21. 阅读DICOM文件格式
- 22. 阅读某种格式
- 23. 阅读半格式数据
- 24. 阅读UTF-8格式
- 25. 阅读MathType MTEF格式
- 26. 阅读格式从文件
- 27. 以html格式阅读excel
- 28. API支持.epub格式
- 29. 使ePub格式的Java API
- 30. 阅读Excel单元格格式
真的很好的教程..!帅气的男人..!我花了很多时间进行这样的演示 –
这是一个耻辱,它只能提供1 upvote这个答案 –
很好的答案。这正成为一个常见问题:) –