JAVA解析html标签

来源:互联网 发布:windows可上网镜像 编辑:程序博客网 时间:2024/05/18 01:53

        最近同事碰到一个问题,要取出数据库中静态页面<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;  
    }

0 0
原创粉丝点击