2013-02-03 37 views
1

我使用JTidy清理某些XML,像這樣:如何從JTidy中刪除所有輸出?

Tidy tidy = new Tidy(); 
tidy.setXmlOut(true); 
tidy.setShowWarnings(false); 
tidy.parse(new FileInputStream(strStrippedHTMLPath), new FileOutputStream(strXMLPath)); 

的問題是,它總是輸出如下:

InputStream: Document content looks like HTML 4.01 
5 warnings, no errors were found! 

我怎樣才能防止它輸出什麼?我試過了:

tidy.setShowErrors(0); 
tidy.setQuiet(true); 
tidy.setErrout(null); 

,如圖所示here,但那也沒用。

回答

1

嘛,總是有:

PrintStream oldErr = System.err(); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
PrintStream newErr = new PrintStream(boas); 
System.setErr(newErr); 
tidy.parse(...); 
System.setErr(oldErr); 

這將是更好地使用某種空輸出流(顯然是Apache的共同性有這樣的野獸)的。但它的要點是一樣的。

當然,這是一個黑客攻擊的一位...

+0

如果它能正常工作,那麼它可以正常工作:)謝謝 – sudo

+0

只是一個快速警告:這不是線程安全的,會重定向虛擬機中運行的所有錯誤輸出,因此請確保您知道您在做什麼! – FRotthowe

0

而不是tidy.setErrout(null);使用tidy.setErrout(new PrintWriter(new ByteArrayOutputStream())); 這似乎爲我工作。

相關問題