我有一个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字符串。
答案 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();
}