Dón*_*nal 7 java html-parsing jsoup
我有一个用户提交的字符串,其中包含HTML内容
"<p></p><div></div><p>Hello<br/>world</p><p></p>"
Run Code Online (Sandbox Code Playgroud)
我想转换这个字符串,以便删除空标记对(但<br/>
保留空标记).例如,此转换的结果应将上面的字符串转换为
"<p>Hello<br/>world</p>"
Run Code Online (Sandbox Code Playgroud)
我想使用JSoup来做这件事,因为我已经在我的类路径中使用了这个,并且我最容易在服务器端执行此转换.
Pri*_*osK 23
这是一个例子,就是这样(使用JSoup):
String html = "<p></p><div></div><p>Hello<br/>world</p><p></p>";
Document doc = Jsoup.parse(html);
for (Element element : doc.select("*")) {
if (!element.hasText() && element.isBlock()) {
element.remove();
}
}
System.out.println(doc.body().html())
Run Code Online (Sandbox Code Playgroud)
以上代码的输出是您正在寻找的:
<p>Hello<br />world</p>
Run Code Online (Sandbox Code Playgroud)
不是很熟悉jsoup,但你可以用一个简单的正则表达式替换:
String html = "<p></p><div></div><p>Hello<br/>world</p><p></p>";
html = html.replaceAll("<([^>]*)></\\1>", "");
Run Code Online (Sandbox Code Playgroud)
虽然使用完整的解析器,您可能只是在处理期间删除空内容,具体取决于您最终将使用它做什么.