【问题标题】:Read & modify html img src value using Java/android使用 Java/android 读取和修改 html img src 值
【发布时间】:2013-09-16 21:56:05
【问题描述】:

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

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

<img src="image.png" />

现在我需要修改这里给出的这个标签:embedd the base64 encoded imagedata direct into the -tag

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

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

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

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

【问题讨论】:

    标签: java android html html-parsing


    【解决方案1】:

    您应该使用 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();
        }
    

    【讨论】:

      猜你喜欢
      • 2014-01-21
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      相关资源
      最近更新 更多