簡體   English   中英

如何刪除 java 中 Jtidy 中的警告

[英]how to remove the warnings in Jtidy in java

我在 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);

請幫助我,如何做到這一點,如何從控制台中刪除這些警告。

查看文檔,我發現了一些可以滿足您需求的方法。

setShowErrorssetQuietsetErrout 您可能想嘗試以下方法:

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

其中一個可能已經足夠了,這些都是我找到的所有選項。 請注意,這只會隱藏消息,而不是對它們做任何事情。 還有setForceOutput來獲取 output,即使產生了錯誤。

如果您想將 JTidy 警告重定向到(例如)log4j 記錄器,請閱讀此博客條目

如果您只是想讓它們遠離 go(連同其他控制台輸出),則使用System.setOut()和/或System.setErr()將 output 發送到文件......或黑洞。

對於 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(boolean )

根據 Joost 的回答,我認為這是最好的解決方案:

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

這三個都是必要的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM