【问题标题】:how to remove the warnings in Jtidy in java如何在java中删除Jtidy中的警告
【发布时间】:2011-09-07 00:16:44
【问题描述】:

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

请帮助我,如何做到这一点,如何从控制台中删除这些警告。

【问题讨论】:

    标签: java jtidy


    【解决方案1】:

    查看文档,我发现了一些方法可以满足您的需求。

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

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

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

    【讨论】:

      【解决方案2】:

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

      如果您只是想让它们消失(连同其他控制台输出),则使用System.setOut() 和/或System.setErr() 将输出发送到文件……或黑洞。

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


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

      【讨论】:

        【解决方案3】:
        Writer out = new NullWriter();
        PrintWriter dummyOut = new PrintWriter(out);
        tidy.setErrout(dummyOut);
        

        【讨论】:

          【解决方案4】:

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

          更多信息请看这里: http://www.docjar.com/docs/api/org/w3c/tidy/Tidy.html#setShowWarnings(boolean)

          【讨论】:

            【解决方案5】:

            根据 Joost 的回答,我认为这是最好的解决方案:

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

            这三个都是必要的。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2020-06-20
              • 1970-01-01
              • 2013-01-18
              • 2018-12-22
              • 1970-01-01
              • 1970-01-01
              • 2020-07-20
              相关资源
              最近更新 更多