下载此文档

Jsoup代码解读之六parser下Java开发Java经验技巧.doc


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
Jso叩代码解读之六-parser(T)-编程 开发技术
Jsoup代码解读之六-parser (T)
原文出处:黄亿华
最近生活上有点忙,女儿老是半夜不睡,精神状态也不是很好。工作上的事情也 谈不上顺心,有很多想法但是没有几个被认可nsitional. dtd〃>
<!一 State: BeforeHtml 一>
<html lang=,zh-CN' xml: lang=,zh-CN'
xmlns=,http://www. w3. org/1999/xhtml'>
<!一 State: BeforeHead 一一>
<head>
<!一 State: InHead -->
<script type=〃text/javascript”〉
//<!-- State: Text 一>
function xx() {
}
</script>
<noscript>
<!一 State: InHeadNoscript -->
Your browser does not support JavaScript!
</noscript>
</head>
<!一 State: AfterHead -->
<body>
<!一 State: InBody -->
<textarea>
<!一 State: Text -->
xxx
</textarea>
<table>
<!一 State: InTable -->
<!一 State: InTableText -->
xxx
<tbody>
<!一 State: InTableBody -->
</tbody>
<tr>
<!一 State: InRow -->
<td>
<!一 State: InCell -->
</td>
</tr>
</table>
</html>
这里可以看到,HTML标签是有嵌套要求的,例如<tr>, <td>需要组合<table>来 使用。根据Jsoup的代码,可以发现,HtmlTreeBuilderState做了以下一些事 情:
语法检查
例如tr没有嵌套在table标签内,则是一个语法错误。当InBody状态直接出现 以下tag时,则出错。Jsoup里遇到这种错误,会发现这个Token的解析并记录 错误,然后继续解析下面内容,并不会直接退出。
InBody {
boolean process(Token t, HtmlTreeBuilder tb) (
if (StringUtil. in(name,
caption , col , col group , irame , head , tbody , td , tioot ,
〃比〃,〃thead〃,〃tr〃)){
(this);
return false;
}
}
标签补全
例如head标签没有闭合,就写入了一些只有body内才允许出现的标签,则自动 闭合</head>o HtmlTreeBuilderState 有的方法 anythingElse ()就提供了 自动补 全标签,例如InHead状态的自动闭合代码如下:
private boolean anythingElse(Token t, TreeB

Jsoup代码解读之六parser下Java开发Java经验技巧 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小健
  • 文件大小87 KB
  • 时间2022-05-20