首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使JTIdy文档格式良好?

如何使JTIdy文档格式良好?
EN

Stack Overflow用户
提问于 2012-05-01 05:36:37
回答 4查看 20.6K关注 0票数 7

我在用JTidy诉r938案。我正在使用此代码来尝试清理页面…

代码语言:javascript
复制
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 -- http://www.chicagoreader.com/chicago/EventSearch?narrowByDate=This+Week&eventCategory=93922&keywords=&page=1时,事情并没有得到清理。例如,页面上的META标记,如

代码语言:javascript
复制
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

保持为

代码语言:javascript
复制
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

而不是有"“标签或显示为"”。我通过将生成的JTidy org.w3c.dom.Document作为字符串输出来确认这一点。

我该怎么做才能让JTidy真正清理页面--也就是让它格式良好?我知道还有其他工具,但这个问题特别与使用JTIdy有关。

EN

回答 4

Stack Overflow用户

发布于 2012-05-01 06:04:42

如果您想要XML格式,则需要指定几个Tidy标志

代码语言:javascript
复制
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表单

代码语言:javascript
复制
Tidy tidy = new Tidy();
tidy.setXHTML(true);
票数 7
EN

Stack Overflow用户

发布于 2013-02-13 00:22:35

使用tidy.setXmlTags(true);解析XML而不是HTML

票数 3
EN

Stack Overflow用户

发布于 2013-08-06 05:27:31

即使发现错误,也要使用Tidy.setForceOutput(true) (风险自负)生成输出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10390922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档