如何使用 Ruby 检测 HTML 文档片段中的错误



我正在从Web表单中收集一些HTML格式的内容。在保存此 HTML 内容之前,我想对其进行快速的健全性检查,以确保它看起来格式正确(没有未关闭的标签,没有无效的标记(。

使用 Ruby 和/或任何流行的 gem,我可以检查 HTML 片段字符串,例如:

<p>foo</p><h1>Unclosed H1<p>bar</p>

并发现诸如未关闭的h1标签之类的东西?

以为Nokogiri会在这里救我,但没有:

>> Nokogiri::HTML::DocumentFragment.parse("<p>foo</p><h1>Unclosed H1<p>bar</p>").errors
=> []

你试过w3c_validators吗?

[1] pry(main)> require 'w3c_validators'
=> true
[2] pry(main)> include W3CValidators
=> Object
[3] pry(main)> p MarkupValidator.new.validate_text('<!DOCTYPE html><html><body><p>foo</p><h1>Unclosed H1<p>bar</p></body></html>');

这为您提供了非常详细的验证结果。

或者,如果您只想检查结束标签,也许Nokogiri::XML::Document.parse().errors,但除非文档类型是 XHTML,否则这可能不起作用,因为其他文档类型中的一些 HTML 元素甚至不需要结束标记。 w3c_validators做得更好

相关内容

  • 没有找到相关文章

最新更新