先准备好待处理的标签文本,以下是我的演示样例。
<p>eee</p>
<p><img src="xxxxxx" uploadpic="2019120515755358409796689.jpg" title="2019120515755358409796689.jpg" alt="/xxxxxx/201912/20191205/2019120515755358409796689.jpg" width="550"/><span>2</span></p>
<p><img videoid="4058279638149" src="xxxxxxxxx/4058279638148.jpg?x-oss-process=image/watermark,image_dmlkZW9QbGF5LnBuZw==,g_center" filename="QQ视频20191023163644.mp4" filesize="9717299" resourcetype="0" width="300px" style="cursor: pointer;" height="177px"/>
<img audioid="4058282641541" filename="龙婷儿 - 狂浪.mp3" src="xxxxxxx/4058282641541.jpg" width="586px" style="cursor: pointer;"/></p>
<p><img src="xxxxxx/201912/20191205/2019120515755358646384020.jpg" uploadpic="2019120515755358646384020.jpg" title="2019120515755358646384020.jpg" alt="/xxxxxxxx/201912/20191205/2019120515755358646384020.jpg" width="550"/></p>
<p><br/></p>
①将本文转化为Document对象
这里我使用变量s来接收
String s = "带处理文本";
Jsoup提供了很多方法,我这里选择Jsoup.parse(s),大家可以根据实际需求选择。
Document document = Jsoup.parse(s);
②选择要处理的标签
通过第一步我们已经获取到了Document对象,接下来就是解析标签了。
这里以<img>为例:
Document document = Jsoup.parse(s);
Elements es = document.select("img");
System.out.println(es.size());
for(Element element:es) {
System.out.println(element);
}
运行结果:
可以看到我们拿到了所有<img>标签 。
③获取、修改、移除标签中的属性
可以通过以下代码获取标签中的所有属性:
Attributes as = element.attributes();
返回的是标签中的所有属性集合
假设我们想获取src的值,在②步骤中的遍历中添加如下代码:
element.attr("src");
结果:
也可以使用通过以下方式:
Attributes as = element.attributes();
System.out.println(as.get("src"));
如果我们想替换src的值应该如何操作呢?
也很简单只需要使用如下代码:
element.attr("src", "aaaaaaaaa");
第一个参数是选择你带替换的属性名,第二个要替换的值
我这里选择了第一个<img>标签进行替换
结果:
移除指定属性:
element.removeAttr("uploadpic");
结果:
可以看到uploadpic这个属性已经不在了
④删除指定标签,输出处理之后的结果
Document document = Jsoup.parse(html);//html指代需要处理的内容
Element element = document.selectFirst("img");//获取第一个img标签元素
element.remove(); //移除
String result = document.selectFirst("body").html();