HTML 网页解析技术的一些资料
现在做 Code Manager .SWT 的过程中不可避免的遇到了需要抓存网页以及网页内嵌的一些资源的问题.
现在
MHT 生成已经不成问题, 但是如何探测源文件编码以及把 MHT 解压缩(导出)为可以浏览的 HTML 文件(含图片等)是个大问题,
以及用户可视化编辑页面后重新保存为 MHT 的问题. Java 的 MHT 处理技术目前是有一家美国公司在卖, 还好我也实现了,
正在考虑完善后和他们竞争.
探测编码可以用:
1) 检测 HTTP 头的 Content Type 中的编码;
2) 检测正文中的 Content Type 中的编码.
解析 HTML 可以用两种方案:
1)
转换成 XHTML, 然后用 JDOM 转换成 DOM 树, 这种解析方式比较传统, 但是容错性上还没有做过检测, 这种方式的优点就是用
DOM 的方式便于成块的处理 HTML 以及存储.JSPWiki.org 的 HTML 转 Wiki 标签即用的此项技术.
2) 用 http://htmlparser.sourceforge.net/
的开源纯 Java HTML Parser 来分析, 但是反向存储(由修改后的模型再写回HTML)还没有研究如何使用.
一些资料: http://www.blogjava.net/lostfire/archive/2006/07/02/56212.html
http://scud.blog.javascud.org/post/192.htm
相关文档:
HTML特殊转义字符列表
2009-11-10 15:45
如何显示空格?
通常情况下,HTML会自动截去多余的空格。不管你加多少空格,都被看做一个空格。比如你在两个字之间加了10个空格,HTML会截去9个空格,只保留一个。为了在网页中增加空格,你可以使用 表示空格。
HTML特殊转义字符列表
最常用的字符实体
Character Ent ......
<body>
<iframe name="pic" src=""; width="400" height="300" marginwidth="0" marginheight="0" frameborder="0" scrolling="no"></iframe>
<p>
<a href="www.163.com" mce_href="www.163.com" target="pic">网易</a>
<a href="www.sina.com.cn" mce_href="www.sina.com.cn" ......
<html>
<head>
<script>
function locking(){
document.all.ly.style.display="block";
document.all.ly.style.width=document.body.clientWidth;
document.all.ly.style.height ......
<Html>
<Head>
<SCRIPT LANGUAGE="JavaScript">
<!--
//定义 select 原值
var oldValue,oldText;
//select下拉框的onkeydown事件,修改下拉框的值
function catch_keydown(sel){
switch(event.keyCode) {
case 13: //回 ......