package com.web.test;
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;
/**
* 过滤image
* @author chenxiaobing
*
*/
public class HTMLParser 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 HTMLParser()
{
}
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 HTMLParser();// 解析结果驱动这些回调方法。
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 = "E:/HTML/html002.html";
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();
}
}
}
分享到:
相关推荐
在iOS开发中,"imag推送程序"可能依赖一些第三方库,比如处理网络请求的AFNetworking,或者解析JSON数据的JSONKit等,这些库可以帮助推送程序更好地与服务器通信、处理推送消息。 为了实现"imag推送程序"的功能,...
《PyPI官网下载imag3-1.1.0.tar.gz:深入解析Python图像处理库imag3》 在Python编程世界中,PyPI(Python Package Index)是开发者们获取和分享软件包的重要平台。今天我们将聚焦于一个名为"imag3"的Python库,其...
【标题】"imag.js|教你如何智做原生APP" 提示我们,这可能是一个关于使用imag.js框架来开发原生应用程序的教程或资源。imag.js可能是JavaScript的一个库或者框架,专为创建移动应用设计,它允许开发者用JavaScript...
svg.path svg.path是在SVG中实现不同路径命令的对象的集合,以及SVG路径定义的解析器。用法有四个路径段对象,即Line , Arc , CubicBezier和QuadraticBezier还有一个Path对象,该对象充当路径段对象的集合。 这些...
1. 图像采集:这是图像处理的第一步,可以是通过数码相机、扫描仪或其他设备获取图像。 2. 图像增强:这个过程旨在改善图像的质量,例如调整亮度、对比度、色彩平衡,或者应用滤镜效果,使图像更清晰或更具艺术感。...
因此,对PCB-ImAg(浸银处理电路板)和PCB-HASL(热风整平电路板)在吸附薄液膜下的电化学迁移腐蚀行为与机理的研究具有重要的理论和实际意义。 在提到的研究中,作者利用立体显微镜和扫描电子显微镜(Scanning ...
"cut_imag.7z"便是一款针对Windows操作系统设计的截屏工具,通过解压此7z格式的压缩包,我们可以获取到名为"cut_imag"的程序,用于实现高效、精准的屏幕截图功能。 "cut_imag"是一款轻量级的截屏软件,其主要特点...
商业转载请联系作者获得授权,非商业转载请注明出处。 链接:http://caibaojian.com/html2canvas.html 来源:http://caibaojian.com html2canvas 能够实现在用户浏览器端直接对整个或部分页面进行截屏。这个...
"Python-img2html"项目正是这样一个利用Python实现的工具,它能够将图片转化为HTML页面,虽然其主要目的是娱乐,但这个过程涉及的技术和原理对于理解图像处理和前端网页技术具有一定的学习价值。 首先,我们要了解...
制作大师是一款非常好用的软件,可以制作精美的相册,很不错的。
1.用户导入word生成pdf -首先导入word的时候读取word里面的全部内容。调用(ReadAndWriteDoc)然后将内容 传送到createPdf里面生成pdf。导入的时候读取采用poi /生成的时候采用的是...4.将html转换成pdf(itext)
This is an implementation of the algorithm for calculating the Structural SIMilarity (SSIM) index between two images
"imag-popupmenu.zip"这个压缩包显然包含了一个关于如何在Android应用中绘制多个PopupMenus的示例。下面我们将深入探讨PopupMenus的相关知识。 首先,PopupMenus通常用于在用户点击某个图标或按钮时显示一系列可选...
【标题】4_Add2Imag.zip 这个压缩包文件涉及的是一个OpenCV项目,名为"thisimag",它很可能是关于在图像处理中添加两个图像的实现。OpenCV(开源计算机视觉库)是一个强大的跨平台库,广泛用于图像处理、计算机视觉...
标题中的“IMAG_PSNR.rar”提示我们这是一个关于图像质量评估的压缩文件,而“图像 psnr”进一步说明了其内容与图像峰值信噪比(PSNR)有关。PSNR是衡量数字图像处理系统性能的重要指标,常用于评估图像压缩、图像...
"imag-main"可能是指一个主要的图像处理模块或者存储系统的核心部分,负责图像的解析、压缩、存储以及相关功能的实现。 综上所述,"imag:储存"涵盖了图像的多种技术方面,从格式选择、压缩方法到存储策略、安全管理...
在图像处理领域,ICA常被用来进行图像分离,即从混合图像中解析出原始的、独立的成分。"fastICA_imag.zip"这个压缩包包含了实现这一功能的源码文件"fastICA_imag.m",这是一个MATLAB代码,用于执行快速ICA算法(Fast...
imag, 基于图像的个人信息管理套件 图像 imag-pim.orgimag 是一个命令行个人信息管理套件。 这个应用程序在早期开发中。 我们也有一些工作,但现在我们不考虑任何稳定或者有用的事情。 随便玩吧。 目标/什么是图像?...
iMAG8024U报警管理服务器产品使用手册v10-图文.docx