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

时间:2011-06-02 11:11:40

标签: 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);

当我运行它时,“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);

请帮助我,如何执行此操作,如何从控制台中删除这些警告。

5 个答案:

答案 0 :(得分:10)

查看文档我发现了一些可能做你想做的方法。

setShowErrorssetQuietsetErrout。您可能想尝试以下方法:

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

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

答案 1 :(得分:5)

如果您想将JTidy警告重定向到(例如)log4j记录器,请阅读this blog entry

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

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


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

答案 2 :(得分:3)

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

答案 3 :(得分:2)

在文档中,我发现了另一种方法,在这种特殊情况下对我来说似乎更好一点:setShowWarnings(boolean)。此方法将隐藏警告,但仍会抛出错误。

有关详情,请点击此处: http://www.docjar.com/docs/api/org/w3c/tidy/Tidy.html#setShowWarnings(boolean

答案 4 :(得分:0)

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

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

这三个都是必要的。