近日,笔者在进行需求分析的过程中,使用到了利用Excel2003文件直接生成.mht档案文件,然后由web系统对.mht文件 进行索引的一个简单应用,引起了笔者对.mht文件结构进行分析的兴趣,经过尝试和分析,特将心得陈述如下,仅供同行参考:

1.利用MSIE直接打开.mht文件,然后在"查看/源文件"中可以对其内容进行分析;

2.笔者发现.mht文件在运行时状态下,其页面内容中包含若干的汉字,但是.mht的源文件中没有任何的汉字内容,进而分析其内容中有无相应的解码引用,唯一发现的是一个引用文件是"http://www.w3.org/TR/REC-html40",但是很遗憾,该文件并不是解码文件,后来,笔者发现所有的类似"表"结构有重复出现的迹象,于是笔者尝试着复制不同的"表"保存后在运行时状态时页面内容果然发生了汉字内容的变化,于是笔者断定.mht采用了非常规编码格式,终于在<head></head>声明代码段中发现了"<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">",经过测试,任何采用此编码的htm页面,均能够对类似"表"结构进行成功解析;

3.笔者的.mht文件由Excel2003文件直接生成,该文件中包含多个worksheet,也就是多个表单内容,如何在.mht中实现集成?在破译了.mht的解码结构后("<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">),很清晰的能够发现.mht文件源代码中包含多段"<html></html>"结构,结构间采用类似"------=_NextPart_01C73A56.E1B7DC30"进行分割,显而易见,N个worksheet内通对应了N个"<html></html>"结构.

4.当然,微软将Excel2003文件直接生成.mht档案文件的过程中采用了javascript脚本技术实现了多个页内容之间的切换,其代码就不在此敷述,有兴趣的读者可以自己自己尝试分析,此处笔者需要特别一提的是微软在javascript脚本中的一个用法,如下:

function fnBuildFrameset()
{
           var szHTML=3D"后续的特殊用法,有点类似于Vb6" ;

with (document)  {
                open("text/html","replace");
                 write(szHTML);
                 close();
          }

}

5.关于.mht的更多精彩,还望和更多同行共同探讨.

对*.mht文件结构的一个浅显分析相关推荐

  1. qualcomm amss 文件结构以及编译流程分析

    qualcomm amss 文件结构以及编译流程分析 https://blog.csdn.net/npjocj/article/details/8206695 AMSS的source实际上是Qualc ...

  2. Keepfast 是前端一个性能分析工具

    简介 Keepfast 是一个性能分析工具,能够分析网站的资源构建性能和页面性能,生成性能报告并提供优化建议,让性能监控更方便. 主要特性: 分析并生成构建性能报告,可直观的对比两个版本的构建性能,以 ...

  3. python把英语句子成分字母_求一个可以分析英语句子成分的软件或网站

    目前还没有,最好的翻译软件都不能翻译英语语法,只能翻译语法结构简单的句子,更别提专业分析句子成分的软件了:出现专业分析英语句子成分的软件,英语老师应该就失业了. 求一个可以分析英语句子成分的软件或网站 ...

  4. 一个电路分析(设计经典的单片机采样电阻 C8051F330内部具有10位高精度的A/D转换器)

    一个电路分析(转) 即将要分析的电路如下,这个电路本人觉得设计的很经典.这个电路主要完成的任务就是监测流经Q1和采样电阻R6中的电流.单片机C8051F330对电流的各种情况做出动作和反应.分析的主要 ...

  5. 用Python制作一个成绩分析程序

    用Python做一个成绩分析程序 第一步:导库 第二步:导入数据 第三步:输出数据并建立分隔栏 第四步:完成分数统计并画出饼图 本程序可以实现画班级成绩饼图的效果. 第一步:导库 from pyech ...

  6. MySQL:一个死锁分析 (未分析出来的死锁)

    最近一个朋友给了我一个死锁 没分析出来搞了好几天,但是把以前出现的一个死锁理了一下流程.这里大概记录一下,并且给出朋友的案例. RC 隔离级别很少出GAP我已经知道的 继承和分裂会出LOCK_GAP这 ...

  7. 一个性能瓶颈分析的过程。

    前段时间公司打造了自己的WEB开发框架新版,性能比以前的两个版有很大提高.在性能基准测试时,某个测试的业务场景为 18000个TPS左右. 但是后来增加了session序列化模块后,一下子下降低到60 ...

  8. 用python做一个舆情分析系统_如何用Python做舆情时间序列可视化?

    如何批量处理评论信息情感分析,并且在时间轴上可视化呈现?舆情分析并不难,让我们用Python来实现它吧. 痛点 你是一家连锁火锅店的区域经理,很注重顾客对餐厅的评价.从前,你苦恼的是顾客不爱写评价.最 ...

  9. 针对 SpringSecurity 做了一个详细分析,让你明白它是如何执行的

    纸上得来终觉浅,绝知此事要躬行. 不知道你们在使用SpringSecurity安全框架的时候,有没有想过 debug 一步一步看它是如何实现判断是否可以访问的? 如下: @PreAuthorize(& ...

最新文章

  1. Python 多版本安装模块
  2. Git历险记(四)——索引与提交的幕后故事
  3. 一些适用于前端开发的 Atom 插件
  4. red hat 4.1.2_安装Red Hat Container Development Kit 2.2版本
  5. Java 中15种锁的介绍:公平锁,可重入锁,独享锁,互斥锁,乐观锁,分段锁,自旋锁等等
  6. 使用Html.DropDownList
  7. 【javascript】 的严格模式 详解
  8. 复制:为什么你说“就差一个码农了”,我们是拒绝的
  9. turbo c mysql_Turbo C 2.0集成开发环境的使用
  10. 2020版本的pycharm支持官方汉化了
  11. 19 接口类和抽象类
  12. html 苹果微信录音js,基于JS开发微信网页录音功能的实例代码
  13. 4、【办公自动化】Python实现Word转PDF
  14. 机器人正向运动学和D-H参数方法
  15. ruby 安装问题的 一二事
  16. c++控制台版 俄罗斯方块 闪瞎眼
  17. 计算机通识之TCP/IP协议簇(二)
  18. Java生成word文档|综合
  19. MATLAB信号处理——信号与系统的分析基础(1)
  20. 面试中可以提问面试官的问题

热门文章

  1. Linux / Windows系统中安装最新版 ElasticSearch (es)搜索引擎 超详细图文教程【一看就懂】
  2. react本地储存_如何在React项目中利用本地存储
  3. python十六进制转换成八进制_怎么把十六进制转化为八进制
  4. AAA云免费云主机推荐码
  5. 重装系统后通过修改注册表实现记录还原
  6. 变换矩阵_平移 缩放 旋转及统一变换
  7. 一文梳理类脑计算的前世今生 | 中科院自动化所研究员李国齐
  8. mysql不能存字母_jdbc - 无法在mysql中存储俄语中文阿拉伯语字母
  9. FreeRTOS中的堆栈计算
  10. mysql数据库引擎面试,mysql数据库引擎面试