这篇文章主要介绍了Java HtmlParse提取标签中的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
☆代码示例:
package cas; import org.htmlparser.Node; import org.htmlparser.NodeFilter; import org.htmlparser.Parser; import org.htmlparser.filters.StringFilter; import org.htmlparser.filters.TagNameFilter; import org.htmlparser.tags.ImageTag; import org.htmlparser.util.NodeList; /** * Html 中的body体中提取出img标签中的src值 * * @author XY * */ public class CASHtmlImgConvert { public static void main(String[] args) { //演示 String[] oldSrcPath=changeImgSrc(""); if(oldSrcPath!=null){ for(String str:oldSrcPath){ System.out.println(str); } } } public static boolean isEmpty(String str){ if(str!=null&&(!str.equals(""))) return false; else return true; } /** * * @param htmlPath 本地的html路径 或者body */ private static String[] changeImgSrc(String htmlPath) { StringBuilder oldSrcPath = new StringBuilder(); try { Parser parser = new Parser(htmlPath); //标签名过滤器 NodeFilter filter = new TagNameFilter ("img"); NodeList nodes = parser.extractAllNodesThatMatch(filter); Node eachNode = null; ImageTag imageTag = null; if (nodes != null) { // 遍历所有的img节点 for (int i = 0; i
补充知识:java 扫描HTML 拿取各种标签资源数据
直接上代码,不比比。
package com.zhirui.oa.modules.notice.utils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; public class TemplateUtil { public static List> getImgSrc(String htmlContent) { List> srcList = new ArrayList(); //用来存储获取到的地址 Map map = null; Pattern p = Pattern.compile("|>|/>)");//匹配字符串中的img标签 Matcher matcher = p.matcher(htmlContent); boolean hasPic = matcher.find(); if (hasPic == true)//判断是否含有图片 { while (hasPic) //如果含有图片,那么持续进行查找,直到匹配不到 { String group = matcher.group(2);//获取第二个分组的内容,也就是 (.*?)匹配到的 Pattern srcText = Pattern.compile("(src|SRC)=("|')(.*?)("|')");//匹配图片的地址 Matcher matcher2 = srcText.matcher(group); if (matcher2.find()) { map = new HashMap(); map.put("imgResourcePath", matcher2.group(3)); srcList.add(map);//把获取到的图片地址添加到列表中 map = null; } hasPic = matcher.find();//判断是否还有img标签 } } return srcList; } public static List> getVideoSrc(String htmlContent) { List> srcList = new ArrayList(); //用来存储获取到的视频地址 Map map = null; Pattern p = Pattern.compile("|>|/>)");//匹配字符串中的video标签 Matcher matcher = p.matcher(htmlContent); boolean hasPic = matcher.find(); if (hasPic == true)//判断是否含有视频 { while (hasPic) //如果含有视频,那么持续进行查找,直到匹配不到 { String group = matcher.group(2);//获取第二个分组的内容,也就是 (.*?)匹配到的 Pattern srcText = Pattern.compile("(src|SRC)=("|')(.*?)("|')");//匹配视频的地址 Matcher matcher2 = srcText.matcher(group); if (matcher2.find()) { map = new HashMap(); map.put("videoResourcePath", matcher2.group(3)); srcList.add(map);//把获取到的视频地址添加到列表中 map = null; } hasPic = matcher.find();//判断是否还有video标签 } } return srcList; } public static List> getAhref(String htmlContent) { List> srcList = new ArrayList(); //用来存储获取到的超链接地址 Map map = null; Pattern p = Pattern.compile("|>|/>)");//匹配字符串中的a标签 Matcher matcher = p.matcher(htmlContent); boolean hasPic = matcher.find(); if (hasPic == true)//判断是否含有超链接 { while (hasPic) //如果含有超链接,那么持续进行查找,直到匹配不到 { String group = matcher.group(2);//获取第二个分组的内容,也就是 (.*?)匹配到的 Pattern srcText = Pattern.compile("(href|HREF)=("|')(.*?)("|')");//匹配超链接的地址 Matcher matcher2 = srcText.matcher(group); if (matcher2.find()) { map = new HashMap(); map.put("aResourcePath", matcher2.group(3)); srcList.add(map);//把获取到的超链接地址添加到列表中 map = null; } hasPic = matcher.find();//判断是否还有a标签 } } return srcList; } }
以上这篇Java HtmlParse提取标签中的值操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。