我从外部来源获得了可能是组成错误的HTML片段:
<p>Include all the information someone would need to answer your <i><i>question<p>
如何使其在较大的HTML文档中安全呈现,并关闭Java中所有悬挂的HTML标签?
答案 0 :(得分:1)
您可以尝试将传入的字符串解析为XML-有很多工具可以做到这一点。如果失败,则表示HTML格式错误(例如,并非所有标签都已正确关闭)。
如果您需要更好的验证,则可以另外针对XSD进行验证。
答案 1 :(得分:1)
您可以通过编写自己的Java自定义解析器并修复标签来实现。 想法将是这样,获取所有打开的标签并在字符串中找到其相关的结束标签。 如果找不到结束标记,可以用替换为。
您需要处理重复项以及pre,post有效标签。
否则,您可以尝试使用此方便的开源解析,以帮助实现这一目标。 http://java-source.net/open-source/html-parsers
http://htmlcleaner.sourceforge.net/看起来是不错的选择。 希望这会有所帮助。