如何使用c#解析ncx文件

时间:2015-01-15 05:40:54

标签: c# visual-studio epub

我正在尝试创建一个用于阅读电子酒吧的Windows手机应用程序。我提取了内容,现在我想读取ncx文件。但是当我尝试使用System.Xml.Serialization.XmlSerializer时,它告诉我第二行本身的未知字段。请帮忙

2 个答案:

答案 0 :(得分:3)

以下是阅读epub文件的基本方法

  • 将EPUB文件视为ZIP存档,并使用Windows读取它 内置ZIP存档阅读器,ZipArchive
  • 在存档中,找到文件META-INF / container.xml并查看其中 找到根文件元素的完整路径属性。这给了 你是OPF文件的路径(可能是
  • OPS / content.opf)OPF文件的'manifest'元素将告诉
    你是组成这本书的所有文件的名称。 '脊椎' 元素将告诉你它们在书中出现的顺序(和 将包括一个引用,通过脊椎的'toc'属性
    元素,通常在NCX中的目录文件 格式)
  • 通常,EPUB书籍将包含一系列XHTML文件 包含本书一个“章节”的文件。基本程序 显示一本阅读书将是:
    • 找出用户想要查看的章节
    • 将该章的XHTML加载到WebView(或用于在屏幕上呈现XHTML的其他解决方案)

您可能遇到的问题:

  • 虽然使用ZIP生成器创建了许多EPUB书籍 兼容ZIP标准,与之不兼容 内置于操作系统中的ZIP阅读器API。你可能需要使用一个 像DotNetZip或SharpZipLib这样的第三方库(但要小心 后者的许可条件。)

  • 您需要做一些工作才能在WebView中显示图像, 特别是如果你试图覆盖所有部分的图像类型 EPUB标准。

  • 找到并应用EPUB的所有CSS样式将会非常繁琐 书定义。

  • 您可能希望显示章节的“分页”视图, 而不是将其显示为长的垂直可滚动列。 这将涉及一些时髦的JavaScript工作。

  • 您可能会发现单个EPUB章节太大了 在WebView中显示。最后,你可以决定所有的 WebView的局限性意味着你最好自己编写 自定义XHTML解析渲染解决方案,并使用显示 TextBlocks,或更具异国情调的东西(你可以使用C ++互操作 代码和D2D字体API)

答案 1 :(得分:1)

要解析.epub文件,您可能需要使用库:

来自SO的来源:1 2 3 4