如何从JTidy中删除所有输出?

时间:2013-02-03 21:20:45

标签: java xml jtidy

我正在使用JTidy清理一些XML,如下所示:

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所示,但这也不起作用。

2 个答案:

答案 0 :(得分:1)

嗯,总有:

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

最好使用某种Null输出流(显然Apache Commons有这样的野兽)。但它的要点是一样的。

当然,这有点像黑客......

答案 1 :(得分:0)

而不是tidy.setErrout(null);使用tidy.setErrout(new PrintWriter(new ByteArrayOutputStream())); 这似乎对我有用。