Я нашел несколько сообщений, ссылаясь на то, что вы можете проверить XHTML на его DTD, используя драгоценный камень nokogiri. Хотя мне удалось использовать его для синтаксического анализа XHTML (ищет "теги" и т.д.), Я изо всех сил пытаюсь проверить документы.
Для меня это:
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.]
]
Поэтому я предполагаю, что это неправильный подход. Я не могу найти подходящих примеров - может ли кто-нибудь предположить, что я делаю неправильно?
Я запускаю ruby 1.8.6 на Mac OSX 10.5.8. Нокогири говорит мне:
nokogiri: 1.3.3
warnings: []
libxml:
compiled: 2.6.23
loaded: 2.6.23
binding: extension