java - 如何在 Java 中编辑 html 字符串中的标签

标签 java html string tags replaceall

我有一个 html 字符串:

<p>1</p> <p><img src="/filename.jpg" /></p> 
<p>2</p> <p><img src="/filename.jpg" alt="1324" width="600" height="180" /></p>
<p>3</p> <p><img style="border-width: 1px;" src=/filename.jpg" alt="" width="1000" height="300" /></p>
<p>4</p> <p><img style="border-width: 1px; max-width:100%" src=/filename.jpg" alt="" width="1000" height="300" /></p>

我需要搜索此字符串中的所有 img 标签。如果它没有该属性,请将 style="max-width:100%" 作为它们的属性插入。如果那个 img 标签已经有 style 属性,那么我需要添加属性 "max-width:100%"。我使用 Java

如何实现?

最佳答案

使用 Jsoup库。
下载 Jar或使用 mvn .

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;

/**
 * Created by hwding on 3/8/17.
 */
public class Bar {
    public static void main(String[] args) {
        String string = "<p>1</p> <p><img src=\"/filename.jpg\" /></p> <p>2</p> <p><img src=\"/filename.jpg\" alt=\"1324\" width=\"600\" height=\"180\" /></p> <p>3</p> <p><img style=\"border-width: 1px;\" src=/filename.jpg\" alt=\"\" width=\"1000\" height=\"300\" /></p> <p>4</p> <p><img style=\"border-width: 1px; max-width:100%\" src=/filename.jpg\" alt=\"\" width=\"1000\" height=\"300\" /></p>";

        Document document = Jsoup.parse(string);
        Elements elements = document.select("img");

        elements.forEach(e -> {
            if(!e.hasAttr("style"))
                e.attr("style", "max-width:100%");
            System.out.println(e.toString());
        });
    }
}

输出:

<img src="/filename.jpg" style="max-width:100%">
<img src="/filename.jpg" alt="1324" width="600" height="180" style="max-width:100%">
<img style="border-width: 1px;" src="/filename.jpg&quot;" alt="" width="1000" height="300">
<img style="border-width: 1px; max-width:100%" src="/filename.jpg&quot;" alt="" width="1000" height="300">

关于java - 如何在 Java 中编辑 html 字符串中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42667381/

相关文章:

c - 尝试通过使用字符串来检查数字是否为回文

java - 如何从 Pane 中删除这些空间?

javascript - WebGL:如何将移动纹理叠加在另一个纹理之上?

javascript - 按数字键提交表格

java - 我需要在 OR 条件的两侧都检查 null 吗?

string - ZipFile 中的 namelist() 返回编码无效的字符串

java - .proto 文件导入时出错

java - 在 eclipse "run as applet"中也更改我的小程序的大小

用于 MS Exchange 的 java 免费库(2003、2007、2010 ...)

javascript - Bootstrap 3 导航栏折叠