问题标签 [jtidy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
511 浏览

jsoup - 格式化 HTML jericho、jTidy 或 JSoup 的片段?

我想格式化/缩进 HTML 片段

进入这个

我尝试了 jTidy 和 JSoup,但是他们使用和/或或调整我的 HTML。我想要一些可以简单地格式化我的 HTML 的一部分的东西,就像上面的例子一样。

我找到了 jericho,它似乎可以做我想做的事,但我更喜欢使用 jTidy/JSoup。

可以用 jTidy 或 JSoup 做我想做的事吗?

0 投票
0 回答
65 浏览

java - 中文内容的 jtidy 解析问题

我遇到了 jtidy 解析器的问题,其中包含以下中文内容:

解析后,它会在字符“e”之后返回一个额外的 e,例如...

我正在使用最新版本的 jtidy。

0 投票
1 回答
135 浏览

java - Jtidy - 如何保留内联元素之间的空间

我的 Html 源是这样的

转换后的输出是这样的(没有空格):- HelloWorld

0 投票
2 回答
1030 浏览

java - jTidy 漂亮的打印自定义 HTML 标签

我正在尝试使用 JTidy 漂亮地打印用户生成的格式良好的 HTML:

这是我的配置:

但是 jTidy 正在删除我的 AngularJSdatasource指令。有没有办法解决这个问题?

我从日志中得到这个:

删除tidy.setXHTML(true)或将其设置为 false 并添加tidy.setXmlTags(true)实际上解决了这个问题,它开始考虑用户定义的标签,但这不是一个好的解决方案,因为 JTidy 开始尝试关闭自封闭标签。

我需要一个文本编辑器的格式化程序。我无法保证我们的用户将定义和使用哪些指令。它必须是适用于任何用户定义指令的通用解决方案

0 投票
1 回答
343 浏览

java - JTidy 正在包装我的段落

我正在使用 JTidy 和 Flying Saucer 从 HTML 创建 PDF 文档。在将文档传递到 Flying Saucer 之前,我使用 JTidy 确保所有元素都干净且格式正确。

我遇到了一个我无法弄清楚的 JTidy 问题。有一个“p”元素包含大量文本,它是从数据库中填充的,并已使用空格进行格式化。在 HTML 中,它使用样式“white-space: pre-line;”显示。所以它显示了这样的东西

这在浏览器中正确显示,我们根据它们的空格划分了部分。然而,通过 JTidy 运行后,上面的代码变成了

本质上,它只是将所有文本包装成一个大部分,该部分仅适用于一定数量的字符,然后换行到下一行。因此,由于我使用的是预行,因此生成的 PDF 中的输出是错误的。我查看了http://jtidy.sourceforge.net/apidocs/org/w3c/tidy/Tidy.html上的文档,但找不到解决方案。到目前为止,我的 Java 代码看起来像这样

我试过使用

但这并没有改变输出。任何帮助,将不胜感激。

0 投票
0 回答
72 浏览

richfaces - 不显示 JTiday 解析的数据

我正在使用 JSF 2.2 和 RichFaces 4.5.1。在其中一个中,rich:popupPanel我正在使用h:outputText标记来显示由 JTidy 解析的 HTML 数据。数据是来自我们正在使用的 Web 服务之一的响应。

JTidy 在解析的 HTML 中添加了 CDATA 标记,这似乎是数据未显示在屏幕上的主要原因。但是,如果我删除 CDATA 它可以正常工作,而且如果我将h:outputText标签从丰富的弹出面板中取出,那么即使使用 CDATA 它也可以正常工作。

谁能告诉我为什么 CDATA 是其中的h:outputText一部分时不显示数据的原因rich:popupPanel

这是我的弹出窗口:

0 投票
1 回答
158 浏览

java - Jmeter中的Jtidy StringIndexOutOfBoundsException

我想使用 JMeter 从网页中检索内容。
我要查找的数据位于 javascript 块中:

假设我想要name映射 id=id1 中脚本块内的变量值,
其中还有一个变量song

我使用 XPath Extractor 来获取脚本内容(CSS/Jquery 不会获取 javascript 内容,因为它不是纯 HTML):

.//map[@id='id1']/script[contains(.,'song')]

XPath 找不到数据,因为我的 HTML 很脏(一些缺少标签结尾的野东西等等......)所以我需要使用 Jtidy 清理它(使用“Tidy(容错解析器)”选项)

备注:
- 我不拥有我正在处理的网页。我必须处理这个可怕的 HTML。
- 网页中有很多maps元素,每个元素都有一个带有song变量的脚本:我不能直接使用正则表达式(据我所知)

问题 :

问题是:我的 HTML 包含奇怪的国际字符wé hà bêêêê ...(是的,法语,对此感到抱歉)并且 Jtidy 无法正确处理这种特殊情况:错误 #205 StringIndexOutOfBoundsException while lexing script content

结果 Xpath 提取器失败了,我的整个测试计划都被卡住了。

我设计了一个自定义解决方案,但我发现它有点复杂。也许我可以更好地处理这个问题。

我的解决方案:

我使用tagsoup java库清理HTML输出并将其存储在一个JMeter变量中,然后通过Xpath处理(勾选“应用到”中的“JMeter变量”选项),最后我使用了一个正则表达式来让我的Lionel Richie的东西工作.. .

JMeter |->HTTP Request |->BeanShell PostProcessor->tagsoup > var RESPONSE |->Xpath Extractor, Apply to var RESPONSE > var XPATH_OUTPUT |->Regular Expression Extractor, Apply to var XPATH_OUTPUT

要让 tagoup 与 JMeter 一起工作,只需将 jar 放在 lib 目录中,然后使用 BeanShell PostProcessor。

使用的 BeanShell 代码:

0 投票
1 回答
549 浏览

java - JTidy 报告“发现 3 个错误!”...但没有说明它们是什么

我有一大块以编程方式生成的 HTML。我使用以下 Java 代码通过 Tidy(版本 r938)运行它:

我得到以下输出:

麻烦的是,Tidy 没有告诉我它发现了什么 3 个错误。

我在这里撒了一点小谎。上面的输出实际上遵循所有 247 个警告的长列表(主要是修剪空div元素)。我可以压制那些有tidy.setShowWarnings(false); 无论哪种方式,我都没有看到错误报告,所以我无法弄清楚我需要修复什么。300Kb 的 HTML 对我来说太多了。

我尝试了多种方法来查找错误。遗憾的是,我无法通过 validate.w3.org 运行它,因为 HTML 文件位于专有网络上。信息最丰富的方法是在 IntelliJ IDEA 中打开它;这揭示了十几个重复的 div ID,我已修复。错误仍然发生。

我四处寻找有关此问题的其他提及。虽然我发现很多诸如“如何使用 JTidy 从解析的 HTML 中获取错误/警告消息?”之类的内容。,他们似乎都在要求不同的东西,或者假设条件根本不适合我。例如,我收到警告就好了;这是我需要的错误,即使我打电话setShowErrors(100)或其他什么都没有报告。

我是否必须深入研究 Tidy 的源代码并对其进行调试,从它报告错误的地方开始?或者有什么更简单的我可以做的吗?

0 投票
1 回答
314 浏览

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

(这是我几天前遇到的一个问题的后续,JTidy 在 300k HTML 文档中报告了 3 个错误,但没有报告在哪里。在对问题进行了一些研究之后,我发现似乎是导致错误的原因,并且我非常怀疑为什么,但我还没有决定如何处理它。)

这是一个小的独立 HTML 表达式,它会导致 JTidy 报告错误:

Javascript 字符串常量包含 HTML 标记,这些标记始终使 JTidy 关闭 - 删除下划线元素,JTidy 完美地完成解析。更准确地说,JTidy 的解析器在结束标记上报告错误;开始标签很好(输出可能有些错误,但对于我以后的目的来说已经足够了)。即使您注释掉字符串,也会报告错误:

我认为可以肯定地说以上是有效的 HTML;但我找不到任何关于如何处理的文档。环顾四周,我发现这已在 tidy-html5 中修复;它似乎只在 Java 端口 JTidy 中被破坏。

再搜索一下,我发现我使用的是最新的 JTidy,根据它的SourceForge 页面;r938 版本是我的 Maven 存储库中的版本。(实际上,源是在沙箱中解压的,所以我可以调试这个问题。)我上面链接的错误报告是 2015 年的;JTidy r938 于 2009 年问世。

我是否认为 JTidy 处理不正确?如果是这样,我应该尝试修复它,还是在某个私人分支中解决了它?我不会称自己为解析器/词法分析器专家,但如果必须,我可以应付自如。

0 投票
0 回答
702 浏览

java - 在java中使用Jtidy和Itext将html转换为pdf时未应用样式

我使用 Jtidy 和 java 将文档从 html 转换为 pdf 的问题是,当我转换 pdf 时,样式未应用于文档。当我尝试其他解决方案(Jsoup、HTMLworker、xmlWorker)时,文档也格式不正确。

这是 html 代码的一部分: