2

Web フォームから HTML 形式のコンテンツを収集しています。この HTML コンテンツを保存する前に、簡単なサニティ チェックを行い、適切な形式 (閉じられていないタグや無効なマークアップがない) に見えることを確認したいと思います。

Ruby や一般的な gem を使用して、次のような HTML フラグメント文字列を確認できますか?

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

h1閉じられていないタグのようなものを発見しますか?

ここでノコギリが助けに来てくれると思ったが、違う:

>> 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のいくつかのHTML要素は終了タグを必要としないため、doctypeがXHTMLでない限り、これはおそらく機能しません。w3c_validatorsより良い

于 2012-07-26T05:56:22.947 に答える