想写一个方法,把一个HTML代码读进来,然后取出<img>标签里的SRC属性值,再判断如果是"http://"开头的就保留,如果不是"http://"开头的(而是本地路径,如"C:")则保留图片文件名,把路径替换为image/filename。再将这个值放回原位。先谢谢大家啦~~~
解决方案 »
- 为何会报空指针异常?
- (聊天室功能制作)java怎么讲服务器的信息发送到客户端?
- 函数fun1抛了异常,函数fun2调用了fun1没有try catch也没有指出throws 怎么没报错
- 如何判当前处于树的哪个节点,并且出发在当前节点产生的动作
- 关于ECLIPSE和Java参数问题..希望大家帮忙.谢谢了
- 匹配不包含某个字符串的正则表达式如何写
- 请教一个基础问题
- 目前如何提交FAQ的问题
- 定义两个类A类和B类,怎么令A类只能经过B类的方法来实例化,而不能直接用new?
- 题: 我的TOMCAT 4.0 的STARTUP.BAT 运行失败!应该如何设置?
- 一个图形设计方面的问题
- 急求:Struts-menu的背景色问题
下面就是例子
<code>
<html dir="ltr"><head><title>预览</title><Base href=http://192.168.0.35:8080/portal/ ><link href="/manager/HtmlEditor/editor/css/fck_editorarea.css" rel="stylesheet" type="text/css" /></head>
<body><p>
<img alt="" src="C:\Documents and Settings\user\My Documents\My Pictures\Google Talk\Alien 1.bmp" /></p>
<center><img alt="英媒称英超队盯上郑智等4人冬季转会袭击查尔顿" src="http://i3.sinaimg.cn/ty/g/2007-11-30/U1022P6T12D3327977F44DT20071130081938.jpg" border="1" /><br /><img style="border-right: medium none; border-top: medium none; border-left: medium none; border-bottom: medium none" height="5" src="http://i0.sinaimg.cn/home/c.gif" width="1" alt="" /><br />郑智 <br /><br /></center><p> 新浪体育讯 本赛季的英冠联赛中,查尔顿队赛季初期失血严重,包括达伦-本特,马库斯-本特,卢克-扬,赫雷达森等多名主力球员相继投奔了英超其他球队,而查尔顿不得不买来不少其他球员替补昔日主力们纷纷离开后带来的空缺。</p></body></html>
<code>我最后是想把第一个<img>中src="C:\Documents and Settings\user\My Documents\My Pictures\Google Talk\Alien 1.bmp"替换成src="image\Alien 1.bmp"
而第二个<img>中的src="http://i3.sinaimg.cn/ty/g/2007-11-30/U1022P6T12D3327977F44DT20071130081938.jpg"中保持不变
谢谢!~~~
http://topic.csdn.net/u/20071130/11/3fd47a4b-7322-49c9-a913-64c60c517b40.html关于ultraedit中正则表达式的用法建议你看:
http://hi.baidu.com/hahalyf/blog/item/2a670b454a63193c86947330.html
您说的我看过了,我想是我可能没说清楚我的目的。
我是想用java程序来替换
我手边没有环境,所以不能给你代码。
把HTML String按照dom来处理,然后取出img标签,遍历先
TEST.txt 如下
<html dir="ltr"><head><title>预览</title><Base href=http://192.168.0.35:8080/portal/ ><link href="/manager/HtmlEditor/editor/css/fck_editorarea.css" rel="stylesheet" type="text/css" /></head><body><p>This is a test case.</p><p>In order to show the the String which need to be deal with.</p><p>Example image<img alt="" src="C:\Documents and Settings\user\My Documents\My Pictures\Google Talk\Bear.bmp" /> and another picture <img alt="" src="C:\Documents and Settings\user\My Documents\My Pictures\Google Talk\Sun.bmp" />and <img alt="纳什:考虑加盟德州球队三强中当属火箭希望最大" src="http://i0.sinaimg.cn/ty/k/2007-12-01/U2138P6T12D3329804F44DT20071201022602.jpg" border="1" /><br /> </p></body></html>
程序源码import java.io.*;
import java.util.*;
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;/**
* 解析HTML文件中特定元素
* LINK href
* A href
* IMG src
* SCRIPT src
*
*/
public class ParseHtml {
public static void main(String args[]) {
ParseHtml ph = new ParseHtml(); try {
String filename = "e:\\TEST.txt";
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();
}
} private static void startParse(String sHtml) {
try {
ParserDelegator parser = new ParserDelegator();
HTMLEditorKit.ParserCallback callback = new Callback();
parser.parse(new StringReader(sHtml), callback, true);
} catch (Exception e) {
e.printStackTrace();
}
} static class Callback extends HTMLEditorKit.ParserCallback {
public void handleSimpleTag(HTML.Tag t, MutableAttributeSet a, int pos) {
if (t.equals(HTML.Tag.IMG)) {
String src = (String) a.getAttribute(HTML.Attribute.SRC);
if(!src.trim().substring(0, 6).equals("http:/")) {
src = "image/" + src.substring(src.lastIndexOf("\\") + 1).trim();
System.out.println(src);
}
// count++;
}
// if (t.equals(HTML.Tag.LINK)) {
// String href = (String) a.getAttribute(HTML.Attribute.HREF);
// System.out.println("No." + count + " LINK src=" + href);
// count++;
// }
} public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
if (t.equals(HTML.Tag.A)) {
String src = (String) a.getAttribute(HTML.Attribute.HREF);
System.out.println(src);
// count++;
}
if (t.equals(HTML.Tag.SCRIPT)) {
String src = (String) a.getAttribute(HTML.Attribute.SRC);
System.out.println(src);
// count++;
}
} }
}输出结果
image/Bear.bmp
image/Sun.bmp但是我现在不知道如何将新生成的两个新的src写回去