如何在java中删除Jtidy中的警告

DJ3*_*J31 4 java jtidy

我在java中使用Jtidy解析器.

URL url = new URL("www.yahoo.com"); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream in = conn.getInputStream(); 
doc = new Tidy().parseDOM(in, null);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,"doc = new Tidy().parseDOM(in,null);" 我收到一些警告如下:

Tidy (vers 4th August 2000) Parsing "InputStream"
line 140 column 5 - Warning: <table> lacks "summary" attribute

InputStream: Doctype given is "-//W3C//DTD XHTML 1.0 Strict//EN"
InputStream: Document content looks like HTML 4.01 Transitional

1 warnings/errors were found!
Run Code Online (Sandbox Code Playgroud)

这些警告会在控制台上自动显示.但我不希望这些警告在运行后显示在我的控制台上

doc = new Tidy().parseDOM(in, null);
Run Code Online (Sandbox Code Playgroud)

请帮助我,如何做到这一点,如何从控制台中删除这些警告.

Joo*_*ost 10

看一下文档,我发现了一些可能做你想做的方法.

setShowErrors,setQuietsetErrout.您可能想尝试以下方法:

Tidy tidy = new Tidy();
tidy.setShowErrors(0);
tidy.setQuiet(true);
tidy.setErrout(null);
doc = tidy.parseDOM(in, null);
Run Code Online (Sandbox Code Playgroud)

其中一个已经足够了,这些都是我找到的所有选项.请注意,这只是隐藏消息,而不是对它们做任何事情.setForceOutput即使生成了错误,也可以获得输出.


Ste*_*n C 5

如果要将JTidy警告重定向到(例如)log4j记录器,请阅读此博客条目.

如果你只是希望它们(以及其他控制台输出)消失,那么使用System.setOut()和/或System.setErr()将输出发送到文件......或黑洞.

对于JTidy版本8(或更高版本),该Tidy.setMessageListener(TidyMessageListener)方法更优雅地处理消息.


或者,您可以发送错误报告webmaster@yahoo.com.:-)