- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(这是几天前 a problem 的后续,JTidy 在 300k HTML 文档中报告了 3 个错误,但没有报告错误的位置。经过对问题的一些研究,我发现了导致问题的原因错误,我强烈怀疑原因,但我还没有决定如何处理它。)
这是一个小的独立 HTML 表达式,它会导致 JTidy 报告错误:
<html>
<body>
Some text.
<script type="text/javascript">
var foo = "Press <u>ESC</u> to continue";
</script>
</body>
</html>
Javascript 字符串常量包含 HTML 标签,这些标签始终使 JTidy 失效 - 删除下划线元素,JTidy 完美地完成解析。更准确地说,JTidy 的解析器报告结束标记上的错误;开始标签很好(输出可能有些错误,但对于我以后的目的来说已经足够了)。即使您注释掉该字符串,也会报告错误:
// Any closing tags here at all will <b>throw JTidy off</b>.
我认为可以肯定地说上面的内容是有效的 HTML;但我找不到任何关于如何处理它的文档。搜索了一下,我发现this has been fixed in tidy-html5 ;它似乎只在 Java 端口 JTidy 中被破坏。
再搜索一下,发现我用的是最新的JTidy,根据其SourceForge page ; r938 版本是我的 Maven 存储库中的版本。 (实际上,源代码已在沙箱中解压,以便我可以调试此问题。)我上面链接的错误报告日期为 2015 年; JTidy r938于2009年问世。
我认为 JTidy 处理此问题的方式正确吗?如果是这样,我应该尝试修复它,还是已经在某个私有(private)分支中解决了这个问题?我不会称自己为解析器/词法分析器专家,但如果必须的话我可以蒙混过关。
最佳答案
这确实是 JTidy 中的一个错误。遗憾的是,我已经修复了它(以及其他问题),但最终没有发布新版本,因为我没有时间再开发 JTidy。
代码在 subversion 中可用,如果您从 trunk 中查看最新版本并构建它,您的程序应该可以运行。
我还创建了一个名为 CodeUpdateAndJava5 的分支,其中我使代码更接近 tidy 工具的行为(在他们开始开发 html5 版本之前),并开始添加更多现代 java 功能。该代码也可以工作;不过我没有发布任何基于它的版本。
根据您的需要,jsoup library可能更适合您,并且正在维护和更新。
关于java - JTidy 无法处理脚本元素内的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40849872/
我正在使用 JTidy 来验证 Java 渲染类中生成的 HTML 片段。我想忽略某些警告和错误。 (编辑:再想一想,我可能不想抑制错误) 例如,生成以下代码片段: 导致此警告: 第 5 行第 7
我们正在使用 JTidy 来清理一些 html 以进行 sax 处理。我们在间距问题上遇到了很多麻烦,如下例所示: HTML stackoverflow 输出“stackoverflow” 但是...
我目前正在使用 JTidy 来解析 HTML 文档并获取给定 HTML 文档中所有 anchor 标记的集合。然后,我提取每个标签的 href 属性的值,以在页面上生成一组链接。 不幸的是,这些链接可
我正在使用 JTidy 来清理一些 XML,如下所示: Tidy tidy = new Tidy(); tidy.setXmlOut(true); tidy.setShowWarnings(false
我刚刚更新到 10 月份发布的最新版本的 jtidy,它似乎由于未知原因破坏了我的文档对象。这是我的代码: tidy = new Tidy(); tidy.setShowWarnings(false)
我正在尝试使用 jTidy 从(现实世界)HTML 中提取数据。但是 jTidy 不解析自定义标签。 some text more text 我无法在自定义标签之间获取
我想使用 JMeter 从网页中检索内容。 我正在寻找的数据在一个 javascript block 中: (...) var name="Lionel Richie"; va
(这是几天前 a problem 的后续,JTidy 在 300k HTML 文档中报告了 3 个错误,但没有报告错误的位置。经过对问题的一些研究,我发现了导致问题的原因错误,我强烈怀疑原因,但我还没
正在寻找一种获取 html 的方法,例如: *.td { font-weight: bold; }
我想使用 JTidy 验证我的 html。如果它分别有效或无效,我想回答真或假。目前我正在使用此代码。 String htmlData = "Hello Java "; Tidy tidy = ne
我正在寻找 TagSoup 和 jTidy 库的文档(如果可能的话,官方文档)。 我想使用这个库来操作 html“tagsoup”文件,这些文件包含 xml 标签,在 html(html、xhtml
我在使用 jTidy(在 Android 上)时遇到了一个非常烦人的问题。我发现 jTidy 适用于我测试过的每个 HTML 文档,但以下内容除外:
我正在尝试使用 JTidy 进行 XHTML DOM 解析,这似乎是一项相当违反直觉的任务。特别是,有一种解析 HTML 的方法: Node Tidy.parse(Reader, Writer) 为了
我正在使用 JTidy 和 xpath 来解析 HTML,但目前解析文本给我带来了一些麻烦,因为它可能包含 b 标签,所以我不想循环它的子节点,而只是删除 'b ' 加载 html 后的标签。 如何从
我正在尝试使用 jTidy 在我拥有的 HTML 片段上进行 pretty-print 。到目前为止,我已经完成了以下工作。 protected String prettyPrintHTML(Stri
我正在开发一个使用 Jtidy/Saxon 的 Java Web Scraper。 Tidy Parsed DOM 通过 XQuery 表达式发送到 Saxon 以提取数据。我在使用 XQuery 表
方法: public static String convertHtmlEntities(String htmlString) throws UnsupportedEncodingException{
我正在使用 spring2 和 Maven 开发一个 Java 项目。 我已经将 JSLint4Java 合并到 Maven 中,但现在发现自己需要做一些进一步的验证。 构建中有许多核心页面,即主页、
我正在尝试从 html 文件创建 xhtml 文件,但我遇到了错误。在转换期间我收到以下错误: line 1 column 1 - Warning: inserting missing 'title'
我正在使用 JTidy v. r938。我正在使用这段代码来尝试清理页面…… final Tidy tidy = new Tidy(); tidy.setQuiet(false); tidy.setS
我是一名优秀的程序员,十分优秀!