java解析html例子
来源:互联网 发布:腾讯视频for mac官网 编辑:程序博客网 时间:2024/04/30 22:10
import java.io.*;
import java.util.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;
import javax.swing.text.html.HTMLEditorKit.ParserCallback;
public class Parser extends ParserCallback { //继承ParserCallback,解析结果驱动这些回调方法
protected String base;
protected boolean isImg = false;
protected boolean isParagraph = false;
protected static Vector<String> element = new Vector<String>();
protected static String paragraphText = new String();
public Parser() {
}
public static String getParagraphText() {
return paragraphText;
}
public void handleComment(char[] data, int pos) {
}
public void handleEndTag(HTML.Tag t, int pos) {
if (t == HTML.Tag.P) {
if (isParagraph) {
isParagraph = false;
}
} else if (t == HTML.Tag.IMG) {
if (isImg) {
isImg = false;
}
}
}
public void handleError(String errorMsg, int pos) {
}
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos) {
handleStartTag(t, a, pos);
}
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
if (t == HTML.Tag.P) {
isParagraph = true;
} else if ((t == HTML.Tag.IMG)) {
String src = (String) a.getAttribute(HTML.Attribute.SRC);
if (src != null) {
element.addElement(src);
isImg = true;
}
}
}
public void handleText(char[] data, int pos) {
if (isParagraph) {
String tempParagraphText = new String(data);
if (paragraphText != null) {
element.addElement(tempParagraphText);
;
}
}
}
private static void startParse(String sHtml) {
try {
ParserDelegator ps = new ParserDelegator();//负责每次在调用其 parse 方法时启动一个新的 DocumentParser
HTMLEditorKit.ParserCallback parser = new Parser();//解析结果驱动这些回调方法。
ps.parse(new StringReader(sHtml), parser, true);//解析给定的流并通过解析的结果驱动给定的回调。
//System.out.println(getParagraphText());
Vector link = element;
for (int i = 0; i < link.size(); i++) {
System.out.println("----haha-----");
System.out.println(link.get(i));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
try {
String filename = "D://blogbaby.htm";
BufferedReader brd = new BufferedReader(new FileReader(filename));
char[] str = new char[50000];
brd.read(str);
String sHtml = new String(str);
startParse(sHtml);
} catch (Exception e) {
e.printStackTrace();
}
}
}
- java解析html例子
- jericho-html解析html的一个例子
- Java网页资源抓取例子(使用第三方包Jsoup解析Html)
- python 解析HTML(附通过例子)
- java 解析 html文档
- java解析html工具
- Java解析 HTML
- Java HTML解析
- java 解析html
- Java解析HTML
- Java解析HTML标签
- JAVA解析html标签
- java解析html
- JAVA解析HTML
- java解析html代码
- java解析html
- JAVA解析JSON的例子
- Java解析Json小例子
- 分享ASP.NET视频系列教程——第五讲 ASP.NET应用程序控件
- JDK中正则表达式类库详解(一)
- 2009福布斯中国上市公司最佳CEO榜
- 巴掌下面出地位(1)
- 分享ASP.NET视频系列教程——第六讲 DropDownList,ListBox等控件
- java解析html例子
- 让我们设计的网页自适应客户端分辨率
- 搬起石头砸了自己的脚
- 在Web页面中使用计时器
- 学习linux几本不错的书
- 分享ASP.NET视频系列教程——第七讲 CheckBox,CheckBoxList,RadioButton,RadioButtonList控件
- 公平,公正,公开
- “域”的概念
- JAVA使用JNI调用C/C++动态库