我发现了几个帖子,暗示你可以使用nokogiri gem验证XHTML是否针对其DTD。虽然我设法使用它来成功解析XHTML(寻找'a'标签等),但我正在努力验证文档。如何使用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.]
]
所以我假设这不是正确的做法。我似乎无法找到任何好例子 - 任何人都可以提出我做错了什么?
我在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
这是伟大的 - 这当然是我制作合理的妆效(一目了然!)。 虽然,奇怪的是,我正在验证的一些页面产生“未实现的块在xmlschemas.c:27443”的警告 - 但是然后继续报告它们是有效的,没有错误。我还没有达到哪种模式的底部,现在还没有。 – NeilS 2009-08-18 09:04:17