我有 CHM 文件。我想要目录信息,如下所示:标题部分、主题名称、主题文件路径等。我注意到它的 HHC 文件具有与以下示例类似的信息:
主要帮助项目.hhc:
<UL> // its root
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Topic 1">
<param name="Local" value="Topics/topic1.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Topic 2">
<param name="Local" value="Topics/topic2.htm">
</OBJECT>
<OBJECT type="text/sitemap">
<param name="Merge" value="Heading-Section1.chm::/Heading-Section1.hhc">
</OBJECT>
是否有办法从此文件和其他 hhc 文件中提取标题部分、主题信息?
正如我从您非常短的 *.hhc 示例中看到的,我想给出一些提示。您的问题中也缺少所需的目标格式。
在 Microsoft HTML 帮助 CHM 文件中,您可以使用单独的帮助文件创建模块化项目。所有已编译帮助模块(.CHM 文件)的索引、全文搜索和目录项都会在运行时合并。打开例如文件Master.CHM,您将看到主+从帮助文件统一到一个帮助系统中。打开任何从属 CHM,您只会看到单个 CHM 帮助。
为了使从属模块目录在运行时与主模块目录合并,必须将“文件包含”块语句添加到主目录文件 (master.hhc) 中。例如:
<OBJECT type="text/sitemap">
<param name="Merge" value="slave1.chm::/slave1.hhc">
</OBJECT>
<OBJECT type="text/sitemap">
<param name="Merge" value="slave2.chm::/slave2.hhc">
</OBJECT>
对于单个
.chm
分别。 .hhc
文件无需“运行时合并”创建基本目录 -> 通过脚本或某些 XML 到 HTML 转换可以轻松导出 HTML。我使用 FAR HTML 等工具将 hhc 保存为 HTML,并通过 RegEx 和 Notepad++ 手动剪切。
在您的示例中,您显示了“Master.hhc”的一些代码行(例如您的
main Help-Project.hhc
)。每个模块 (Heading-Section1.chm
) 都需要自己的 *.hhc 文件。
因此您需要模块化 CHM 帮助文件的所有 .hhc 文件来提取标题部分、主题名称、主题文件路径等。