您的位置:首页 > 编程语言 > Java开发

JAVA解析html标签

2015-12-31 15:46 555 查看
最近同事碰到一个问题,要取出数据库中静态页面<p>标签中的内容,问我应该怎么做,我随口答道,用正则表达式呗,很好正则表达式,其实我也不会用。很久以前我就碰到过类似的问题,当时是我同学问我的,让我思考一下如何解析html标签。我当时随口答道用split呗,结果一顿冷嘲热讽。在我的逼问下,他告诉我用正则比较好,至于怎么用,至今都没告诉我。于是今天心血来潮,开始查找解决办法。终于让我找到一个类似的,他是获取标签中属性值的一个方法,觉得挺不错的

以下就是对应代码:

public static List<String> matchs(String source, String element, String attr) {

List<String> result = new ArrayList<String>();

String reg = "<" + element + "[^<>]*?\\s" + attr + "=['\"]?(.*?)['\"]?\\s.*?>";

System.out.println(reg);

Matcher m = Pattern.compile(reg).matcher(source);

while (m.find()) {

System.out.println(m.group());

String r = m.group(1);

result.add(r);

}

return result;

}

这是获取标签属性值的方法 。经过我的不懈努力我终于找到了

后面是改版后的方法:

public static List<String> match(String source, String element) {

List<String> result = new ArrayList<String>();

String reg = "<"+element+".*?</"+element+">";

Matcher m = Pattern.compile(reg).matcher(source);

while (m.find()) {

System.out.println(m.group(0));

String r = m.group(0);

result.add(r);

}

return result;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: