说明
通过工具可以很方便的对html的全文进行解析,包括内容,元素,属性搜索和获取,可以通过级联元素和级联属性进行定位获取。
引入
maven引入
XML
<dependency>
<groupId>com.tfgee.mv</groupId>
<artifactId>tbtools-common-box</artifactId>
<version>0.0.2</version>
</dependency>
使用示例
java
/**
*
*/
package com.tb.commonbox.JsoupHelper;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import com.tb.commonbox.JsoupHelper.entity.TagInfo;
import com.tb.commonbox.log.TbToolsCommonLogFactory;
import com.tb.commonbox.log.impl.TbToolsCommonLogImpl;
/**
*
* 2026年2月4日
* Think
*/
public class Demo {
final static TbToolsCommonLogImpl log = TbToolsCommonLogFactory.init().getT();
public static void main(String[] args) {
String content = "<body id=\"body\"> "
+ "<ul class=\"ul1 cl\">"
+ "<li>测试1</li>"
+ "<li><a href=\"连接\">点击</a></li>"
+ "<li><a href=\"连接12\">点击2</a></li>"
+ "</ul> "
+ "<ul class=\"ul2 cl\">"
+ "<li>测试2<li>"
+ "<li><a href=\"连接\">点击</a></li>"
+ "<li><a href=\"连接22\">点击2</a></li>"
+ "</ul> "
+ "</body>";
//根据id取内容
String body = JsoupHelper.getContentById(content, "body");
log.log(body);
/**
* 示例1
*/
log.log(">>>>>>>>>>>>>>>示例1 ");
TagInfo tagInfo = new TagInfo();
tagInfo.setTagName("li");
tagInfo.parent().setTagName("ul").addAttr("class", "ul1 cl");
List<TagInfo> tagInfos = JsoupHelper.getContentByTag(content, tagInfo);
if (CollectionUtils.isEmpty(tagInfos)) {
log.error("未找到内容");
}else {
tagInfos.stream().forEach(x->{
log.log("匹配标签:"+x.getTagName());
log.log("匹配的包裹文本:"+x.getContent());
});
}
/**
* 示例2
*/
log.log(">>>>>>>>>>>>>>>示例2 ");
TagInfo tagInfo2 = new TagInfo();
tagInfo2.setTagName("a").setContent("点击2");;
tagInfo2.parent().setTagName("li");
tagInfo2.parent().parent().setTagName("ul").addAttr("class", "ul2 cl");
List<TagInfo> tagInfos2 = JsoupHelper.getContentByTag(content, tagInfo2);
if (CollectionUtils.isEmpty(tagInfos2)) {
log.error("未找到内容");
}else {
tagInfos2.stream().forEach(x->{
log.log("匹配标签:"+x.getTagName());
log.log("匹配的包裹文本:"+x.getContent());
log.log("匹配标签的属性:"+x.getAttrs().get("href"));
});
}
}
}
结果示例
log:<ul class="ul1 cl">
<li>测试1</li>
<li><a href="连接">点击</a></li>
<li><a href="连接12">点击2</a></li>
</ul>
<ul class="ul2 cl">
<li>测试2</li>
<li></li>
<li><a href="连接">点击</a></li>
<li><a href="连接22">点击2</a></li>
</ul>
log:>>>>>>>>>>>>>>>示例1
log:匹配标签:li
log:匹配的包裹文本:测试1
log:匹配标签:li
log:匹配的包裹文本:<a href="连接">点击</a>
log:匹配标签:li
log:匹配的包裹文本:<a href="连接12">点击2</a>
log:>>>>>>>>>>>>>>>示例2
log:匹配标签:a
log:匹配的包裹文本:点击2
log:匹配标签的属性:连接22