用Jsoup实现html中标签替换
Jsoup用来解析和遍历一个HTML文档,并修改气相应的属性或值;详细了解见:
http://www.open-open.com/jsoup/
在做百度编辑器时,由于生产的HTML文件中img路径是相对路径,这样点击生成的HTML文件显示不了图片的,
<img alt="" src="/qk/uploads/newImage/image/20130711/20130711182603_176.png" />
我的解决的方法就是在显示之前把img标签的src地址换成绝对地址,找了一下选择了大家很推崇的Jsoup
String newsBody="<img alt="" src="/qk/uploads/newImage/image/20130711/20130711182603_176.png" /> ";
public static String HTTPHOST="http://192.168.0.78";
Document doc = Jsoup.parse(newsBody);
Elements pngs = doc.select("img[src]");
for (Element element : pngs) {
String imgUrl = element.attr("src");
if (imgUrl.trim().startsWith("/")) {
imgUrl =HTTPHOST + imgUrl;
element.attr("src", imgUrl);
}
}
newsBody = doc.toString();
方法
可以使用属性设置方法 Element.attr(String key, String value) , 和 Elements.attr(String key, String value) .
假如你需要修改一个元素的 class 属性,可以使用 Element.addClass(String className) 和 Element.removeClass(String className) 方法。
Elements 提供了批量操作元素属性和class的方法,比如:要为div中的每一个a元素都添加一个 rel="nofollow" 可以使用如下方法:
doc.select("div.comments a").attr("rel", "nofollow");
说明
与 Element 中的其它方法一样, attr 方法也是返回当 Element (或在使用选择器是返回 Elements 集合)。这样能够很方便使用方法连用的书写方式。比如:
doc.select("div.masthead").attr("title", "jsoup").addClass("round-box");
注:kindEditor编辑器添加图片可以实现绝对路径插入
更多相关文章
- HTML5新增标签与属性
- HTML5 Canvas 绘图方法整理 【十五、Canvas页面交互: 鼠标事件 】
- 不会出现Javascript context.closePath()方法
- CSS定位属性之间的相互作用
- Delphi下发送Email的方法
- HTML:关于a标签的target属性
- css让背景图片拉伸填充的属性
- 通过属性名称获取HTML元素
- 关于input的一些问题解决方法分享