我正在使用 JTidy v.r938。我正在使用这段代码来尝试清理页面......
final Tidy tidy = new Tidy();
tidy.setQuiet(false);
tidy.setShowWarnings(true);
tidy.setShowErrors(0);
tidy.setMakeClean(true);
Document document = tidy.parseDOM(conn.getInputStream(), null);
但是当我解析这个 URL 时——,事情没有得到清理。例如,页面上的 META 标签,例如
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
保持为
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
而不是使用“”标签或显示为“"。我通过将生成的 JTidy org.w3c.dom.Document 作为字符串输出来确认这一点。
我该怎么做才能让 JTidy 真正清理页面——即使其格式良好?我意识到还有其他工具,但这个问题特别与使用 JTIdy 有关。
如果你想要 XML 格式,你需要为 Tidy 指定几个标志
private String cleanData(String data) throws UnsupportedEncodingException {
Tidy tidy = new Tidy();
tidy.setInputEncoding("UTF-8");
tidy.setOutputEncoding("UTF-8");
tidy.setWraplen(Integer.MAX_VALUE);
tidy.setPrintBodyOnly(true);
tidy.setXmlOut(true);
tidy.setSmartIndent(true);
ByteArrayInputStream inputStream = new ByteArrayInputStream(data.getBytes("UTF-8"));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
tidy.parseDOM(inputStream, outputStream);
return outputStream.toString("UTF-8");
}
或者只是想要 XHTML 表单
Tidy tidy = new Tidy();
tidy.setXHTML(true);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)