伯乐共勉

讨论。NET专区
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

懒惰的毛病,与XML一起度过

Posted on 2005-03-12 09:29  伯乐共勉  阅读(552)  评论(0编辑  收藏  举报

今日让文档区的一个同事,帮忙,做CHM的帮助文件,TOPIC都做完了,然后,又准备做INDEX的时候,发现,所用的工具竟然不支持将所有的TOPIC转成INDEX,同事这下傻眼了,因为一共有一千多个TOPIC,如果又要一个一个的加成INDEX,那岂不得累死。
只好向我求教。

我首先,手动建立一个INDEX,然后发现,在目录下有一个index.hhk,打开这个文件。发现,竟然是一个XML格式的文件,内容如下:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>

<UL>
 <LI> <OBJECT type="text/sitemap">
  <param name="Name" value="工作组权限设置">
  <param name="Name" value="详细操作">
  <param name="Local" value="HTML\xtsz_workerqxfp .htm">
  </OBJECT>
</UL>
</BODY></HTML>

这下好办了,不是二进制,也不是别的,是个XML文件,众所周知,XML是一个开放式的格式文件,如果我们的数据符合它的定义,那么就可以用第三方的工具,或手工生成它想要的数据,一个字,就是酷。
再打开HHC文档,发现
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
 <param name="Window Styles" value="0x800025">
 <param name="ImageType" value="Folder">
</OBJECT>
<UL>
 <LI> <OBJECT type="text/sitemap">
  <param name="Name" value="欢迎使用今世科龙超市ERP系统">
  <param name="Local" value="E:\Cao\Delphi_Help\Html\Welcome.htm">
  <param name="ImageNumber" value="1">
  </OBJECT>
 <UL>
  <LI> <OBJECT type="text/sitemap">
   <param name="Name" value="公司简介">
   <param name="Local" value="HTML\gsjj.htm">
   </OBJECT>
..............
 </UL>
</UL>
</BODY></HTML>

好家伙,这两个文件基本上是一样的了
接下来,用ultraedit ,将HHC内容复制到HHK里,用UE编个宏,去掉多余的<UL>, </ul>,就这样,没几分钟,就搞定了。
现在回想起来,如果我们的系统的大部分东西也是按这种方式处理的话,那就给接口处带来非常多的便利。