[英]Read & modify html img src value using Java/android
我有一個Android程序,需要在其中執行以下操作:
我有一個包含以下內容的HTML字符串:
<img src="image.png" />
現在,我需要修改此標簽,如下所示: 將base64編碼的imagedata直接嵌入到-tag中
我能夠實現作者所說的; 我可以將圖像轉換為Base64。
我的問題是我有html字符串,我需要解析該字符串,讀取圖像src值,將圖像數據轉換為byte [],對其進行編碼並重新修改html字符串,然后將其加載到webview中。 即 最后,我的HTML內容將包含以下行:
<img src=\"data:image/jpeg;base64," + image64 + "\" />
我可以使用哪些Java技術來讀取和修改HTML字符串? 我需要在純Java中完成此操作,而不是使用可用的庫。 我的原始HTML文件是預定義的文件,因此無法創建新的HTML,但是我需要修改現有的HTML文件。 我嘗試使用Html.fromHtml和重寫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();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.