Read&;使用Java/android修改html img src值

Read&;使用Java/android修改html img src值,java,android,html,html-parsing,Java,Android,Html,Html Parsing,我有一个Android程序,需要执行以下操作: 我有一个包含以下内容的HTML字符串: <img src="image.png" /> 现在我需要修改此标记,如下所示: 我能够做到作者所说的;我可以将图像转换为Base64 我这里的问题是我有html字符串,我需要解析字符串,读取图像src值,将图像数据转换为字节[],编码并重新修改html字符串,然后将其加载到webview中。 ie;最后,我的HTML内容将有以下行: <img src=\"data:image/jpe

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

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

<img src="image.png" />

现在我需要修改此标记,如下所示:

我能够做到作者所说的;我可以将图像转换为Base64

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

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

我可以使用什么Java技术来读取和修改HTML字符串?我需要在纯java中完成,而不是使用可用的库。 我的原始HTML文件是预定义的,因此我无法创建新的HTML,但我需要修改现有的HTML文件。
我尝试使用Html.fromHtml&override getDrawable(),但我不知道如何进一步修改Html字符串。

您应该使用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();
    }
公共字符串renderHtml(字符串体){
Pattern=Pattern.compile(“[]*[>]”);
匹配器匹配器=模式匹配器(主体);
StringBuilder=新的StringBuilder();
int i=0;
while(matcher.find()){
字符串替换=getReplacement(matcher.group(0));
append(body.substring(i,matcher.start());
如果(替换==null)
builder.append(matcher.group(0));
其他的
附加(替换);
i=matcher.end();
}
append(body.substring(i,body.length());
返回builder.toString();
}