我需要匹配所有这些开始标记:
<p>
<a href="foo">
Run Code Online (Sandbox Code Playgroud)
但不是这些:
<br />
<hr class="foo" />
Run Code Online (Sandbox Code Playgroud)
我想出了这个,并希望确保我做对了.我只抓住了a-z.
<([a-z]+) *[^/]*?>
Run Code Online (Sandbox Code Playgroud)
我相信它说:
/,然后我有这个权利吗?更重要的是,你怎么看?
在搜索SO和Google时,我发现有一些Java HTML解析器一直被各方推荐.不幸的是,很难找到有关各种图书馆优势和劣势的任何信息.我希望有些人花了一些时间来比较这些库,并且可以分享他们学到的东西.
这是我见过的:
如果有一个我错过的主要解析器,我也很想知道它的优点和缺点.
谢谢!
PHP具有strip_tags从字符串中剥离HTML和PHP标记的功能.
Android有办法逃脱HTML吗?
如何在JSP/Servlet Web应用程序中防止XSS攻击?
是否有现有的Java库提供了从String中剥离所有HTML标记的方法?我正在寻找strip_tags与PHP中的函数等效的东西.
我知道我可以使用这个Stackoverflow问题中描述的正则表达式,但是我很好奇是否已经有一个stripTags()方法可以在Apache Commons库中的某个地方浮动,可以使用.
您能否推荐一个将HTML转换为纯文本的开源Java库(最好是ASL/BSD/LGPL许可证)- 清理所有标签,转换实体(&等)并正确处理<br>和表.
更多信息
我把HTML作为字符串,没有必要从网上获取它.另外,我正在寻找的是这样的方法:
String convertHtmlToPlainText(String html)
Run Code Online (Sandbox Code Playgroud) 我需要将HTML转换为纯文本.我对格式化的唯一要求是在纯文本中保留新行.新行不仅应显示在<br>其他标签的情况下,例如<tr/>,也应显示</p>新行.
用于测试的示例HTML页面是:
请注意,这些只是随机网址.
我已经尝试了在这个StackOverflow问题的答案中提到的各种库(JSoup,Javax.swing,Apache utils)来将HTML转换为纯文本.
使用JSoup的示例:
public class JSoupTest {
@Test
public void SimpleParse() {
try {
Document doc = Jsoup.connect("http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter09/scannerConsole.html").get();
System.out.print(doc.text());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
HTMLEditorKit示例:
import javax.swing.text.html.*;
import javax.swing.text.html.parser.*;
public class Html2Text extends HTMLEditorKit.ParserCallback {
StringBuffer s;
public Html2Text() {}
public void parse(Reader in) throws IOException {
s = new StringBuffer();
ParserDelegator delegator = new ParserDelegator();
// the …Run Code Online (Sandbox Code Playgroud) 是否有适用于Android的"hocus-pocus"功能,可将HTML转换为纯文本?
我指的是像Internet Explorer,Firefox等浏览器中的剪贴板转换操作这样的函数:如果在浏览器中选择所有呈现的HTML并将其复制/粘贴到文本编辑器,您将收到(大部分)文本,没有任何HTML标签或标头.
在一个类似的线程中,我看到了对html2text的引用,但它是在Python中.我正在寻找Android/Java功能.
有没有这样的东西,或者我必须自己这样做,使用Jsoup还是Jtidy?