作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我如何将 HTML 转换为保留换行符的文本(由 br、p、div 等元素生成...)可能使用 NekoHTML或任何足够好的 HTML 解析器
例子:
Hello<br/>World
到:
Hello\n
World
最佳答案
这是我通过使用 Jsoup 遍历节点来输出文本(包括换行符)的函数。
public static String htmlToText(InputStream html) throws IOException {
Document document = Jsoup.parse(html, null, "");
Element body = document.body();
return buildStringFromNode(body).toString();
}
private static StringBuffer buildStringFromNode(Node node) {
StringBuffer buffer = new StringBuffer();
if (node instanceof TextNode) {
TextNode textNode = (TextNode) node;
buffer.append(textNode.text().trim());
}
for (Node childNode : node.childNodes()) {
buffer.append(buildStringFromNode(childNode));
}
if (node instanceof Element) {
Element element = (Element) node;
String tagName = element.tagName();
if ("p".equals(tagName) || "br".equals(tagName)) {
buffer.append("\n");
}
}
return buffer;
}
关于java - 如何将 HTML 转换为保留换行符的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2513707/
我是一名优秀的程序员,十分优秀!