我正在解析一些非常糟糕的 html 代码。我取得了很好的成功,直到我注意到某些元素的属性包含“<”。
前任:
<a href="#Anchor-<ht-42368">40</a>
将导致
<a href="#Anchor-">
<ht-42368>40</ht-42368>
</a>
这将在浏览器中正常呈现,但 HTML 清理器会认为它正在尝试启动一个新标签。它在开始一个新标签之前添加了一个“>”,这是我不想要的。
解决此问题的最佳方法是什么?我不确定 HTMLCleaner 是否有任何可以配置来管理它的属性。如果没有,我应该如何预处理 HTML 数据以修复这些字符?
编辑:固定示例
编辑:我想我可以在进入 htmlcleaner 之前应用一个带有正则表达式的 replaceAll()。也许像 ="[^"]*" 之类的东西并搜索它是否包含 "<".. 如果包含,则替换为转义的 html & 符号。这行得通吗?