[分享]发一个可以去除html标签的函数

软件和网站开发以及相关技术探讨
回复
cgk100
帖子: 60
注册时间: 2007-04-22 10:03
来自: china
联系:

[分享]发一个可以去除html标签的函数

#1

帖子 cgk100 » 2007-10-09 23:55

搞了半天终于写了出来了,还希望大家给做测试呀,这是一个可以去除html标签的函数,就是可以把包括尖括号以及尖括号内去除的函数。

代码: 全选

public class Replace {

	public String rep(String html) {

		String str = html;
		try {
			

			while (html.indexOf("<") > -1 && html.indexOf(">")>-1) {
				int begin = 0, right = 0;
				begin = html.indexOf("<"); // 起点
				html=html.substring(begin);
				right = html.indexOf(">");// 终点
				String area = html.substring(0, right + 1); // 获得尖括号及之间的内容
				html = html.substring(right + 1); // 右尖括号之后的内容
				str = str.replace(area, "");
				
			}

		} catch (Exception e) {
			System.out.println(e.toString());
		}

		return str;
	}

	public static void main(String[] args) {

		Replace rep = new Replace();
		System.out.println(rep.rep("home</a> > <a href=\"http://www.foot.com/shopping/index.php?osCsid=5108o0ib4hgq9r45rj1eeipl91\" class=\"headerNavigation\">shopping</a> >>"));

	}

}
ine181x
帖子: 50
注册时间: 2006-12-10 20:01

#2

帖子 ine181x » 2007-10-10 2:16

如果是要把html转换成普通文本,还应该能够把转义字符也变了才好,我以前用的时候也写过这样的函数的
cgk100
帖子: 60
注册时间: 2007-04-22 10:03
来自: china
联系:

谢谢

#3

帖子 cgk100 » 2007-10-10 8:15

二楼的兄弟说的是,那些转义字符用replace就可以了的,谢谢提醒。
头像
patrickhe
帖子: 681
注册时间: 2005-07-21 19:13
来自: Peking, China
联系:

#4

帖子 patrickhe » 2007-10-11 10:24

有几个问题:
1. HTML 正文文本里面也是可能有左右尖括号的。
2. 用这种简单的字符串查找的效率是很低的,比较合宜的是利用 regex 处理。

如果只是要从一个 HTML 页面中去除 HTML 标签,使用 HtmlParser 就可以轻松完成这个任务。
头像
jomper
帖子: 83
注册时间: 2007-08-03 12:26

#5

帖子 jomper » 2007-10-11 15:06

HTML 正文文本里面的左右尖括号 一般是转义的&gt 什么的.
cgk100
帖子: 60
注册时间: 2007-04-22 10:03
来自: china
联系:

#6

帖子 cgk100 » 2007-10-11 15:44

四楼的兄弟说的那个还没有做过,回头看看
头像
AutumnHealth
帖子: 776
注册时间: 2006-12-20 18:41

#7

帖子 AutumnHealth » 2007-10-15 21:53

去除文本中的html标签,用一个正则表达式就可以了
javascript中的实现:

代码: 全选

String.prototype.stripHTML = function() {
    var reTag = /<(?:.|\s)*?>/g;
    return this.replace(reTag, "");
};
尽情享受生活~

Welcome to AutumnHealth's blog:
http://forum.ubuntu.org.cn/weblog.php?w=1421
http://blog.csdn.net/autumnhealth
回复