我有一个 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。
如何实现?
最佳答案
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"" alt="" width="1000" height="300">
<img style="border-width: 1px; max-width:100%" src="/filename.jpg"" alt="" width="1000" height="300">
关于java - 如何在 Java 中编辑 html 字符串中的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42667381/