Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用FlexMarkJava清除标记_Java_Markdown - Fatal编程技术网

使用FlexMarkJava清除标记

使用FlexMarkJava清除标记,java,markdown,Java,Markdown,在Java应用程序中,我需要将标记的文本转换为简单的纯文本,而不是html(例如删除所有链接地址、粗体和斜体标记) 哪种方法最好?我在考虑使用像这样的降价库。但是我一眼就找不到这个功能。它在那里吗?还有其他更好的选择吗?编辑 通过使用org.commonmark.renderer.text.TextContentRenderer而不是默认的HTML呈现程序,支持呈现为文本。不确定它对新词有什么作用,但值得一试 原始答案,使用flexmark HTML+JSoup 理想的解决方案是为flexma

在Java应用程序中,我需要将标记的文本转换为简单的纯文本,而不是html(例如删除所有链接地址、粗体和斜体标记)

哪种方法最好?我在考虑使用像这样的降价库。但是我一眼就找不到这个功能。它在那里吗?还有其他更好的选择吗?

编辑

通过使用
org.commonmark.renderer.text.TextContentRenderer
而不是默认的HTML呈现程序,支持呈现为文本。不确定它对新词有什么作用,但值得一试

原始答案,使用flexmark HTML+JSoup


理想的解决方案是为flexmark实现自定义渲染器,但这将迫使您为markdown中的所有语言功能编写一个模型字符串。除非它支持开箱即用,但我不知道这个功能

一个更简单的解决方案可能是使用flexmark(或任何其他轻量级markdown渲染器)并让它创建HTML。之后,只需运行生成的HTML并让它提取文本:

Jsoup.parse(htmlInputStream).text();
字符串org.jsoup.nodes.Element.text() 获取此元素及其所有子元素的组合文本。空白被规范化和修剪

例如,给定HTML
你好

,p.text()返回
你好

在使用
org.owasp.html.HtmlSanitizer
进行清理后,我们使用这种方法获得在富内容编辑器(summernote)中输入的文本的“预览”