2

我正在从 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
=> []
4

1 回答 1

1

你试过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相反,但这可能不起作用,除非 doctype 是 XHTML,因为其他 doctype 中的一些 HTML 元素甚至不需要结束标记。w3c_validators做得更好

于 2012-07-26T05:56:22.947 回答