zoukankan      html  css  js  c++  java
  • 用Jsoup实现html中img标签地址替换

    做app的时候经常要用webview解析Html,如果是自己写的服务器那么富文本编辑框有可能选择像KindEditor这样的编辑器,在kindEditor添加图片虽然可以实现绝对路径插入,如果说:

    <img alt="" src="http://58.192.23.75:8080/xiaoxiao2/uploads/artImage/image/20130711/20130711182603_176.png" />

    但是这样直接用绝对路径很不合理,为什么?因为作为服务器,ip地址或者域名可能会有变动,如果用绝对路径的话,出现要变动ip的情况,那么原来服务器上的图片就都不能用,或者需要大量的修改,一个合理的服务器需要能灵活的适应,所以就应该使用下面的地址:

    <img alt="" src="/xiaoxiao2/uploads/artImage/image/20130711/20130711182603_176.png" />

    这样高潮就来了,在android的webview控件里面是显示不了这样的图片的,怎么办?

    我的解决的方法就是在显示之前把img标签的src地址换成绝对地址,找了一下选择了大家很推崇的Jsoup,(下载请自行解决)

    替换代码如下:

    	String newsBody="<img alt="" src="/xiaoxiao2/uploads/artImage/image/20130711/20130711182603_176.png" />";
            public static String HTTPHOST="http://58.192.23.75:8080";
    
    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();
    article_context.loadDataWithBaseURL(null, newsBody, "text/html",
    "utf-8", null);
    


    根据jsoup指南里面有这样一段教程:

    方法

    可以使用属性设置方法 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");

    如需更多关于Jsoup 的用法,请访问:

    http://www.open-open.com/jsoup/





  • 相关阅读:
    Java突击学习 Day2 Part1
    Java突击学习 Day1
    SQL Server笔试准备 Day2
    SQL Server笔试准备 Day1
    .NET/C# 各版本变化及衍生知识点 C# 6.0
    .NET/C# 各版本变化及衍生知识点 C# 3.0/4.0/5.0
    .NET理论知识 笔试准备 Day3
    CSS---!important
    CSS---弹性布局
    HTML--meta标签
  • 原文地址:https://www.cnblogs.com/riskyer/p/3228821.html
Copyright © 2011-2022 走看看