java JDK自带的HTML解析器 (HTMLEditorKit.Parser) 示例详解编程语言
2023-06-13 09:20:29 时间
* This small demo program shows how to use the
* HTMLEditorKit.Parser and its implementing class
* ParserDelegator in the Swing system.
public class HtmlParseDemo {
public static void main(String [] args) {
Reader r;
if (args.length == 0) {
System.err.println("Usage: java HTMLParseDemo [url | file]");
System.exit(0);
String spec = args[0];
try {
if (spec.indexOf("://") 0) {
URL u = new URL(spec);
Object content = u.getContent();
if (content instanceof InputStream) {
r = new InputStreamReader((InputStream)content);
else if (content instanceof Reader) {
r = (Reader)content;
else {
throw new Exception("Bad URL content type.");
else {
r = new FileReader(spec);
HTMLEditorKit.Parser parser;
System.out.println("About to parse " + spec);
parser = new ParserDelegator();
parser.parse(r, new HTMLParseLister(), true);
r.close();
catch (Exception e) {
System.err.println("Error: " + e);
e.printStackTrace(System.err);
}
HTMLParseLister.java
/** * HTML parsing proceeds by calling a callback for * each and every piece of the HTML do*****ent. This * simple callback class simply prints an indented * structural listing of the HTML data. class HTMLParseLister extends HTMLEditorKit.ParserCallback int indentSize = 0; protected void indent() { indentSize += 3; protected void unIndent() { indentSize -= 3; if (indentSize 0) indentSize = 0; protected void pIndent() { for(int i = 0; i indentSize; i++) System.out.print(" "); public void handleText(char[] data, int pos) { pIndent(); System.out.println("Text(" + data.length + " chars)"); public void handleComment(char[] data, int pos) { pIndent(); System.out.println("Comment(" + data.length + " chars)"); public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) { pIndent(); System.out.println("Tag start( " + t.toString() + " , " + a.getAttributeCount() + " attrs)"); indent(); public void handleEndTag(HTML.Tag t, int pos) { unIndent(); pIndent(); System.out.println("Tag end( /" + t.toString() + " public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos) { pIndent(); System.out.println("Tag( " + t.toString() + " , " + a.getAttributeCount() + " attrs)"); public void handleError(String errorMsg, int pos){ System.out.println("Parsing error: " + errorMsg + " at " + pos); }
10473.html
cjava相关文章
- 并发编程篇:java 高并发面试题
- java之二维数组初始化
- java实现ajax_Ajax&Java
- 怎么让Java输入字符串_怎么让Java获取用户输入的字符串[通俗易懂]
- MySQL字段类型如何转为java_Java JDBC中,MySQL字段类型到JAVA类型的转换
- java 唯一随机数_JAVA随机数
- 递归求数组的和_java递归教程
- java executeupdate_Java自学-JDBC execute与executeUpdate的区别
- Java 近期新闻:NetBeans 17、Spring 及 Tomcat 多项更新、JDk 20 版本 GraalVM
- IntelliJ IDEA 工程Java文件上红色的无效符详解程序员
- Java 中 ThreadLocal 内存泄露的实例分析详解编程语言
- Java开发之导出excel工具类详解编程语言
- 使用java自带的base64实现加密、解密详解编程语言
- Linux安装Java JDK指南(linux上安装jdk)
- Linux虚拟机上安装JDK的指南(linux虚拟机安装jdk)
- 解锁Java 与 Oracle 的连接之门(java连接oracle)
- Linux安装JDK:一步一步指引(linux版本jdk安装)
- 处理Java实现Redis键值自动过期处理(redisjava过期)
- 时间处理Java与Redis结合:如何处理过期时间(redisjava过期)
- 测试Java操作Redis实例(java测试redis)
- 深入学习:Linux下Java环境建设与配置(linux下java环境)
- 简明易懂的介绍Linux java包的25个字的文章标题:Linux Java包:开发和运行Java程序的工具(Linuxjava包)
- Linux下运行Java:一步步踏上学习之路(linux下运行java)
- Java程序中使用Redis链接提升效率(redis 链接java)
- 解析java中的error该不该捕获