[英]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);
請幫助我,如何做到這一點,如何從控制台中刪除這些警告。
查看文檔,我發現了一些可以滿足您需求的方法。
有setShowErrors
、 setQuiet
和setErrout
。 您可能想嘗試以下方法:
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.