Znalazłem kilka wpisów odnoszących się do faktu, że możesz zwalidować XHTML w stosunku do jego DTD, używając klejnotu nokogiri. Chociaż udało mi się go wykorzystać do pomyślnego przeanalizowania XHTML (szukając tagów "a" itp.), Walczę o weryfikację dokumentów.Jak sprawdzić poprawność XHTML za pomocą nokogiri?
Dla mnie to:
doc = Nokogiri::XML(Net::HTTP.get(URI.parse("http://www.w3.org")))
puts doc.validate
wyniki w całej stercie:
[
#<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.]
]
Więc jestem przy założeniu, że nie jest właściwe podejście. Nie mogę znaleźć dobrych przykładów - czy ktoś może zasugerować, co robię źle?
biegnę Ruby 1.8.6 na Mac OSX 10.5.8. Nokogiri mówi:
nokogiri: 1.3.3
warnings: []
libxml:
compiled: 2.6.23
loaded: 2.6.23
binding: extension
To świetnie - to z pewnością produkujących mi rozsądne wyglądające rezultaty (na pierwszy rzut oka!). Chociaż dziwnie, niektóre strony mam potwierdzające stosy plonu „ZAIMPLEMENTOWANE bloku przy xmlschemas.c: 27443” Ostrzeżenia - ale potem przystąpić do zgłaszania są ważne bez błędów. Nie doszedłem do sedna schematów, które są i nie są w tym momencie. – NeilS