4

我们正在使用 apache 速度通用模板引擎生成 HTML 文件。生成的 HTML 有点丑陋,而且没有正确的缩进。

在我的情况下,我将 HTML 存储在我想以这种方式操作的字符串中,它看起来很漂亮。

我已经尝试过 JTidy,但是当我通过管道传输原始 HTML 时,它会更改 HTML 源代码。有时它会添加或删除 HTML 标记。

我的问题:

是否有 java 库或其他东西(仅!)可以漂亮地打印我的 HTML 代码,而无需从我的 HTML 文档中添加、删除标签?它只会做缩进,所以它看起来很漂亮!不多也不少。有任何想法吗?:-)

也欢迎代码建议、提示或技巧。

此致

4

3 回答 3

2

也许有点晚了,但我用 Jsoup 找到了解决方案。

您可以通过仅使用解析器获得“漂亮”版本的 html,并且(如果需要)通过使用“自定义解析器”避免生成 html 元素

我从这个Jsoup 问题中得到了答案

而它的

public static String formatHTML(String html) throws Exception{ Document doc = Jsoup.parse(html, "", Parser.xmlParser()); return doc.toString(); }

我希望这有帮助。

问候

于 2015-10-26T02:19:16.923 回答
1

在 java 中查找任何 SAX 解析器示例。indent++ 用于打开标签,intent--用于关闭,并以计数的意图编写内容。

于 2011-07-30T00:06:12.483 回答
0

为什么不自己编写一个简单的 Java 解析器来漂亮地打印 HTML。这是一个草图:

  1. 跟踪打开和关闭标签,例如
  2. 有一个计数器来计算当前的缩进级别。
  3. 也许使用堆栈来推送,弹出缩进级别
  4. 只需遍历 HTML 字符串并在看到标签时将当前缩进级别推送到堆栈上
  5. 如果您看到嵌套标签,则增加缩进级别并继续
  6. 当您看到标签的结尾时,例如 . 等然后弹出堆栈返回到prev缩进级别

我想在这里给你一个粗略的想法,你可以以此为起点。我已经编写了许多基于 perl 的漂亮打印机。您可以使用 Perl 相当快地编写解析脚本..

于 2011-07-29T23:58:35.650 回答