java - jTidy - 漂亮的 headless 打印,标题标签

标签 java pretty-print jtidy

我正在尝试使用 jTidy 在我拥有的 HTML 片段上进行 pretty-print 。到目前为止,我已经完成了以下工作。

protected String prettyPrintHTML(String rawHTML) {

    Tidy tidy = new Tidy();
    tidy.setXHTML(true);
    tidy.setIndentContent(true);
    tidy.setPrintBodyOnly(true);
    tidy.setTidyMark(false);

    // Convert HTML to DOM
    Document htmlDOM = tidy.parseDOM(new ByteArrayInputStream(rawHTML.getBytes()), null);

    // Pretty Print
    OutputStream out = new ByteArrayOutputStream();
    tidy.pprint(htmlDOM, out);

    return out.toString();
}

这有效,但输出包含额外的内容,例如 、、<title> 和 标记。

例如,对于输入

  • sub1
  • sub2
    • sub21
这给出,

line 1 column 59 - Warning: inserting missing 'title' element
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>
    </title>
  </head>
  <body>
    <ul>
      <li>
        sub1
      </li>
      <li>
        sub2
        <ul>
          <li>
            sub21
          </li>
        </ul>
      </li>
    </ul>
  </body>
</html>

在浏览 API 后,我找到了 setPrintBodyOnly 方法(我在上面使用过),但仍然没有成功。

我在这里错过了什么?我试过谷歌搜索,但到目前为止所有链接都通向死胡同。

最佳答案

在以下链接中发布了类似的问题。它的答案显示了实现相同目标的一些替代方法。

JTidy Node.findBody() — How to use?

关于java - jTidy - 漂亮的 headless 打印,标题标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403779/

相关文章:

java - JTidy 无法处理脚本元素内的 HTML 标签

java - 任何人都可以发布 jtidy 将 xhtml 转换为 xml 的教程链接

java - 如何在 Java XML 中使用引用 URI 加载外部资源

java - 使用 JGraphX 移动单元格

java - Spring Boot 2 自定义执行器端点

Java和 cucumber 表达式匹配

c++ - C++ 模板的 Vim 缩进?

python - 使用 Python 删除 json 文件中的新换行符。

struct - 显示/打印/等结构 julia jupyter

java - 在 DIV HTML 中遍历或查找元素的最快方法