阅读&使用Java / android修改html img src值

时间:2013-09-12 13:20:53

标签: java android html html-parsing

我有一个Android程序,我需要在其中执行以下操作:

我有一个包含以下内容的HTML字符串:

<img src="image.png" />

现在我需要修改此标记,如下所示:embedd the base64 encoded imagedata direct into the -tag

我能够实现作者所说的;我可以将图像转换为Base64。

我的问题是我有html字符串,我需要解析字符串,读取图像src值,将图像数据转换为byte [],编码它&amp;重新修改html字符串&amp;然后将其加载到webview中。 即;最后,我的HTML内容将包含以下行:

<img src=\"data:image/jpeg;base64," + image64 + "\" />

我可以使用哪些Java技术来阅读和阅读修改HTML字符串?我需要在纯java中而不是使用可用库来实现它。 我的原始HTML文件是预定义的,因此我无法创建新的HTML,但我需要修改现有的HTML。 我尝试过使用Html.fromHtml&amp;覆盖getDrawable(),但我不知道如何进一步修改html字符串。

1 个答案:

答案 0 :(得分:0)

您应该使用Pattern和Matcher对象和正则表达式,例如:

public String renderHtml(String body) {
        Pattern pattern = Pattern.compile("[<](/)?img[^>]*[>]");
        Matcher matcher = pattern.matcher(body);
        StringBuilder builder = new StringBuilder();
        int i = 0;
        while (matcher.find()) {
            String replacement = getReplacement(matcher.group(0));
            builder.append(body.substring(i, matcher.start()));
            if (replacement == null)
                builder.append(matcher.group(0));
            else
                builder.append(replacement);
            i = matcher.end();
        }
        builder.append(body.substring(i, body.length()));
        return builder.toString();
    }