正确使用JTidy净化HTML

2023-11-25

我正在尝试使用 JTidy (jtidy-r938.jar) 来清理输入 HTML 字符串,但我似乎无法正确设置默认设置。通常,诸如“hello world”之类的字符串在整理后最终会变成“helloworld”。我想展示我在这里所做的事情,任何指示将不胜感激:

假使,假设rawHtml是包含输入(现实世界)HTML 的字符串。这就是我正在做的:

        Tidy tidy = new Tidy();
        tidy.setPrintBodyOnly(true);

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PrintStream ps = new PrintStream(baos);

        tidy.parse(new StringReader(rawHtml), ps);
        return baos.toString("UTF8");   

首先,上面的代码看起来有什么根本性的错误吗?我似乎得到了奇怪的结果。

例如,考虑以下输入:

<p class="MsoNormal" style="text-autospace:none;"><font color="black"><span style="color:black;">???</span></font><b><font color="#7f0055"><span style="color:#7f0055;font-weight:bold;">private</span></font></b><font color="black"><span style="color:black;"> String parseDescription</span></font><font>

输出是:

<p class="MsoNormal" style="text-autospace:none;"><font color= "black"><span style="color:black;">&nbsp;&nbsp;&nbsp;</span></font> <b><font color="#7F0055"><span style= "color:#7f0055;font-weight:bold;">private</span></font></b><font color="black"><span style="color:black;">String parseDescription</span></font></p>

So,

“public String parseDescription”变为“publicString parseDescription”

提前致谢!


看一下 JTidy 是如何配置的:

StringWriter writer = new StringWriter();
tidy.getConfiguration().printConfigOptions(writer, true);
System.out.println(writer.toString());

也许然后就清楚是什么原因导致了问题。

有什么奇怪的?实际输出和预期输出的小例子......也许?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正确使用JTidy净化HTML 的相关文章

随机推荐

  • WinForms 的 C# 中动态变量名称的使用

    不确定最好的表达方式是什么 但我想知道是否可以在 C 3 5 中完成动态变量名称访问 这是我目前正在寻求 智能 或通过循环变得更加优雅的代码 private void frmFilter Load object sender EventAr
  • 在jsp中访问javascript中的会话变量

    我需要为 google API 表提供数据 所以我将其从 servlet 发送到 JSP 但是我如何在 googles javascript中访问这些数据 我将提供另一个 JS 的示例 非常简单 只是为了让我学习如何制作主题所说的内容
  • 在 Docker 容器中找不到 Chromedriver 可执行路径

    我使用下面的 Docker 文件创建了一个 docker 映像 它安装最新版本的 Google Chrome 和 Chrome 驱动程序 以及其他 pip 包 Dockerfile FROM python 3 9 Install Chrom
  • 从 iPhone 打开 Google 地图并显示路线

    我想知道如何从 iPhone 应用程序打开 Google 地图 以便 Google 地图在您到达网页时显示路线 今天我使用的代码是only显示坐标 NSString latlong NSString stringWithString 59
  • ScrollView 内的 ViewPager 无法正确滚动

    我有一个 页面 上面有许多组件 并且其中的内容比设备的高度长 好吧 只需将所有布局 整个页面 放入一个ScrollView 没问题 其中一个组件是ViewPager 这可以正确渲染 但对滑动 猛击的响应无法正确执行 它很紧张并且并不总是有效
  • IE10选择框问题

    我在 IE10 中测试我的应用程序 发现选择框有一个奇怪的行为 所选选项会突出显示 上方 下方选项会显示在所选选项的上方 下方 下拉框被隐藏 这只发生在 IE10 中 在所有其他浏览器中 选项显示在选择框下方 在 IE10 和 IE9 中尝
  • 为什么我收到此错误:ConnectionString 属性尚未初始化

    我已经搜索并尝试了一切 但无法弄清楚这一点 我想做一些简单的事情 但似乎我做错了 基本上 任何已存款的用户 我想返回 true 如果没有 我想返回 false 我想这应该很容易 但我对此感到困惑 这是错误 ConnectionString
  • ECR事件后触发AWS lambda函数

    我试图让 AWS Lambda 函数在将新映像推送到 AWS 容器注册表时运行 我已经创建并测试了该功能 该功能运行良好 然后 我使用以下模式创建了一个简单的 CloudWatch 事件规则 source aws ecr 我相信 ECR 的
  • WiX 安装程序在卸载时不会删除文件

    我告诉 wix MSI 文件在卸载时删除文件 但它根本没有注册它 对于捆绑包 我将 MSI 文件称为
  • 选择和悬停覆盖 SWT 表组件中的单元格背景颜色

    我正在使用 SWT 和 Eclipse RCP 来呈现表格 我的问题是 如果我更改单元格 实际上是 ViewerCell 的背景 我可以看到它具有新的颜色 我的问题是 如果我在表中选择一行 或者将鼠标悬停在包含相关单元格的行上 则选择 悬停
  • 如何将两个列表合并为一个列表?

    I have a 1 2 b a b I want c 1 a 2 b j for i in zip a b for j in i
  • 如何在 Django/python 中每行循环三列?

    我想在 for 期间显示数据 每行三列 我希望我的结果如下所示 table tr td VALUE1 td td VALUE2 td td VALUE3 td tr tr td VALUE4 td lt td VALUE5 td td VA
  • 如何在 Swift 中制作引脚注释标注?

    我试图让标注工作 但没有发生 因为我在准备继续时做错了 我想知道如何能够对另一个视图进行引脚注释标注 当点击标注中的按钮时 跳转到另一个场景的过程如下 Set the delegate地图视图作为视图控制器 您可以在 Interface B
  • 包含所有私有成员的类可以是 POD 类吗?

    我之前听说过 POD 类型不能有私有数据 但根据 C 0x 草案 我的要求更宽松 强调我的 has the 相同的访问控制 第 11 条 对于所有非静态数据成员 这似乎表明私有数据只要是私有的就可以 我没有 C 03 的副本来检查 那么 W
  • 在完整框架 4.7 项目上添加对 .NET Core 2.0 DLL 的引用

    我在这里寻找这个问题但没有找到答案 我有一个针对 NET Core 2 0 的类库项目和一个针对 NET Full Framework 4 7 的 WPF 项目 我无法引用 WPF 项目上的类库 我收到以下错误 项目 xxxxxxxx 的目
  • 如何使用 IIS7 修复 CSS 文件内链接的 URL 重写

    我正在尝试为家里的朋友设置代理服务器 我目前正在关注网站上的教程 http blogs iis net carlosag archive 2010 04 01 setting up a reverse proxy using iis url
  • 将 NSTimer 的触发时间重置为从现在开始而不是上次触发

    我有一个NSTimer以 3 秒的间隔触发以减少值 当我执行增加该值的操作时 我想重新启动计时器 从该点开始计时 3 秒 例如 如果我增加该值并且计时器将在 1 秒内触发 我想更改它并让计时器在 3 秒内触发 我可以使计时器无效并重新创建它
  • 从Python中独立于操作系统的位置加载配置文件

    在Linux下我把我的配置放在 programname 中 我应该将其放置在 Windows 中的什么位置 在 python 中打开独立于操作系统的配置文件的推荐方法是什么 谢谢 内森 在 Windows 上 您将其存储在os enviro
  • 如何制作一个通过其他两个枚举器进行延迟迭代的 ruby​​ 枚举器?

    假设我有两个枚举器 enum1 and enum2必须延迟迭代 因为它们有副作用 如何构造第三个枚举器enum3 where enum3 each x x would lazily返回相当于enum1 enum2 在我的现实用例中 我正在流
  • 正确使用JTidy净化HTML

    我正在尝试使用 JTidy jtidy r938 jar 来清理输入 HTML 字符串 但我似乎无法正确设置默认设置 通常 诸如 hello world 之类的字符串在整理后最终会变成 helloworld 我想展示我在这里所做的事情 任何