如何让 JTIdy 使 HTML 文档格式良好?

2024-01-25

我正在使用 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(使用前将#替换为@)

如何让 JTIdy 使 HTML 文档格式良好? 的相关文章

随机推荐

  • EF Core - 一个 sql 请求中的多个计数

    我试图从表中获取多个计数统计信息 但没有得到我想要的 Code var result db Users Select g gt new count db Users Count acCount db Users Count u gt u U
  • 在生成 PDF 时,如何将 Google 地图(或其他 GIS 地图)输出嵌入到 PDF 中?

    我需要在服务器端生成 PDF 文档 其中包括地图 标记等 但据我所知 由于 JavaScript 依赖 这对于 Google 地图来说是不可能的 有没有办法使用 Google Maps API 来实现此目的 或者是否有其他免费 或便宜 的替
  • Delphi XE2:调用 WinAPI EnumResourceNames 导致 Win64 平台中的访问冲突

    在Delphi XE2 Win32平台上运行以下代码可以正常工作 然而 在 win64 平台上编译的相同代码如果在调试模式下运行 将导致 EnumRCDataProc 中的访问冲突 procedure TForm2 Button1Click
  • 在目录中查找部分字符串匹配的文件

    我有一个包含以下文件的目录 apple1 json gz apple2 json gz banana1 json gz melon1 json gz melon2 json gz 我希望找到所有的apple banana and melon
  • Python解析包含函数、列表和字典的字符串

    我正在尝试找到方法来解析可以包含用 python 语法编写的变量 函数 列表或字典的字符串 并用 分隔 空格应该在任何地方都可以使用 因此当它不在 或 内时 请用 分隔 示例字符串 variable function1 1 3 functi
  • 从分支获取最新 Git 提交哈希的命令

    如何使用命令行检查特定 Git 分支的最新提交哈希值 git log n 1 branch name branch name 可能是远程或本地分支 是可选的 没有branch name 它将显示当前分支上的最新提交 例如 git log n
  • Clang - 将 C 标头编译为 LLVM IR/位码

    假设我有以下简单的 C 头文件 foo1 h typedef int foo typedef struct foo a char const b bar bar baz foo bar 我的目标是获取这个文件 并生成一个看起来像这样的 LL
  • 树莓派-gpio (sysfs) 上的 poll() 树莓派

    正如标题所述 我在将一些用户空间中断代码从另一个 armv7 嵌入式 Linux 平台移植到 Raspberry Pi 2 Model B 时遇到问题 我知道 WiringPi 库 并让它以这种方式工作 但出于评估原因 我希望在两个平台上运
  • 无法同时处理点击和触摸事件

    我正在尝试处理按钮上的触摸事件和单击事件 我执行以下操作 button setOnClickListener clickListener button setOnTouchListener touchListener 当注册任何一个侦听器时
  • Windows 每种语言版本的默认代码页

    在哪里可以找到有关 Windows 每种语言版本的默认代码页的信息 即 ANSI 每种语言版本的代码页 我找到了Windows 支持的代码页 http msdn microsoft com en us goglobal bb964654 a
  • 构建 AOSP 并添加具有运行时权限的系统应用程序

    我在 Android 6 AOSP 上工作 我能够构建添加应用程序作为系统应用程序 但现在我想在这个系统应用程序上默认添加运行时权限 这样应用程序就可以启动而无需要求用户验证权限 你知道我该怎么做吗 谢谢你的帮助 如果您的应用程序具有特权
  • 为什么 getSelectedItem 返回 null?

    我刚刚学习 OOP 对这篇基本文章感到抱歉 我不知道为什么当我尝试获取所选项目的值时它返回 nullJComboBox public class AddEmployee extends javax swing JInternalFrame
  • 所见即所得与所见即所得

    在基于 Web 的应用程序中 哪一个更好 更理想 Edit 实际上我正在开发一个社区网站 所以用户的水平可能会有所不同 听说 WYSIWYG 编辑器存在 XSS 安全问题 我也不熟悉所见即所得编辑器及其功能 据我所知WYSIWYM 编辑器中
  • python-从json对象中选择唯一的键值

    我有一个json回复 data id 1 name Tom age 24 id 2 name Nick age 45 id 3 name Harry age 18 id 1 name Tom age 29 count 4 而且我要outpu
  • Heroku“psql:致命:剩余的连接插槽保留用于非复制超级用户连接”

    我正在 Heroku 上开发一个带有 Postgresql 后端的应用程序 当我尝试从 CLI 和在服务器上加载页面访问数据库时 我会定期收到此错误消息 psql FATAL remaining connection slots are r
  • 结构体作为 Go 映射中的键

    我正在研究使用结构作为 golang 映射中的键 该结构中的字段也应该是映射 这似乎与提供的文档相悖here http blog golang org go maps in action这表示只有具有可比较字段的结构 and 可以位于用作映
  • 什么是 weblogic.socket.Muxer?

    你们中有人了解 weblogic socket Muxer 在 WebLogic 8 1 中的用途吗 我经常在线程转储中看到类似于以下的堆栈跟踪 ExecuteThread 0 for queue weblogic socket Muxer
  • HttpContext.Current.User 始终为 null

    我有一个 WCF 服务 它有一个方法可以返回正在使用该服务的 Silverlight 客户端的 Windows 用户名 WCF 服务使用 basicHttpBinding 并将 TransportCredentialOnly 模式设置为 W
  • 与适用于 Mac 的三星智能电视 sdk 4.1 配合使用

    我有一个愚蠢的问题 我安装 2013 Samsung TV SDK 4 1 MacOS pkg 并下载 2013 Smart TV Emulator 4 1 VB zip 和虚拟盒的安装 ova 文件 所以我想终于一切都完成了 但不是 当我
  • 如何让 JTIdy 使 HTML 文档格式良好?

    我正在使用 JTidy v r938 我正在使用这段代码来尝试清理页面 final Tidy tidy new Tidy tidy setQuiet false tidy setShowWarnings true tidy setShowE