如何在java中删除J整洁中的警告

  • 本文关键字:警告 删除 java java jtidy
  • 更新时间 :
  • 英文 :


我在java中使用J整洁解析器。

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

当我运行这个时,"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!

这些警告将自动显示在控制台上。但我不想要这些运行后在控制台上显示的警告

doc = new Tidy().parseDOM(in, null);

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

在查看文档时,我发现了一些方法,它们可以满足您的需求。

存在setShowErrorssetQuietsetErrout。您可能想尝试以下操作:

Tidy tidy = new Tidy();
tidy.setShowErrors(0);
tidy.setQuiet(true);
tidy.setErrout(null);
doc = tidy.parseDOM(in, null);

其中一个可能已经足够了,这些都是我找到的选择。请注意,这只会隐藏消息,而不会对它们采取任何措施。还有setForceOutput来获得输出,即使生成了错误。

如果您想将JTidy警告重定向到(比如)log4j记录器,请阅读此博客条目。

如果您只是想让它们消失(以及其他控制台输出),那么使用System.setOut()和/或System.setErr()将输出发送到一个文件。。。或者黑洞。

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


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

Writer out = new NullWriter();
PrintWriter dummyOut = new PrintWriter(out);
tidy.setErrout(dummyOut);

在查看文档时,我发现了另一种在这种特殊情况下似乎更好的方法:setShowWarnings(boolean)。此方法将隐藏警告,但仍会引发错误。

有关更多信息,请查看此处:http://www.docjar.com/docs/api/org/w3c/tidy/Tidy.html#setShowWarnings(布尔值)

我认为这是最好的解决方案,基于Joost的答案:

Tidy tidy = new Tidy();
tidy.setShowErrors(0);
tidy.setShowWarnings(false);
tidy.setQuiet(true);

这三个都是必要的。

相关内容

  • 没有找到相关文章

最新更新