我发现一些帖子暗示您可以使用 nokogiri gem 验证 XHTML 与它的 DTD。虽然我已经成功地使用它来解析 XHTML(寻找“a”标签等),但我正在努力验证文档。
对我来说,这个:
doc = Nokogiri::XML(Net::HTTP.get(URI.parse("http://www.w3.org")))
puts doc.validate
导致一大堆:
[
#<Nokogiri::XML::SyntaxError: No declaration for element html>,
#<Nokogiri::XML::SyntaxError: No declaration for attribute xmlns of element html>,
#<Nokogiri::XML::SyntaxError: No declaration for attribute lang of element html>,
#<Nokogiri::XML::SyntaxError: No declaration for attribute lang of element html>,
#<Nokogiri::XML::SyntaxError: No declaration for element head>,
#<Nokogiri::XML::SyntaxError: No declaration for attribute profile of element head
[repeat for every tag in the document.]
]
所以我假设这不是正确的方法。我似乎找不到任何好的例子——谁能建议我做错了什么?
我在 Mac OSX 10.5.8 上运行 ruby 1.8.6。Nokogiri 告诉我:
nokogiri: 1.3.3
warnings: []
libxml:
compiled: 2.6.23
loaded: 2.6.23
binding: extension