Java HtmlParse提取标签中的值操作

这篇文章主要介绍了Java HtmlParse提取标签中的值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

代码示例:

代码块语法遵循标准markdown代码,例如:

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提取标签中的值操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...