Ho trovato alcuni post che alludono al fatto che è possibile convalidare XHTML contro il suo DTD usando la gemma nokogiri. Mentre sono riuscito a usarlo per analizzare XHTML con successo (cercando tag 'a', ecc.), Sto faticando a convalidare i documenti.Come convalido XHTML con nokogiri?
Per me, questo:
doc = Nokogiri::XML(Net::HTTP.get(URI.parse("http://www.w3.org")))
puts doc.validate
risultati in un mucchio di:
[
#<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.]
]
Così sto supponendo che non è l'approccio giusto. Non riesco a trovare alcun buon esempio - qualcuno può suggerire cosa sto facendo male?
Sto eseguendo Ruby 1.8.6 su Mac OS X 10.5.8. Nokogiri mi dice:
nokogiri: 1.3.3
warnings: []
libxml:
compiled: 2.6.23
loaded: 2.6.23
binding: extension
che è grande - è certamente la produzione di me ragionevole dall'aspetto risultati (a colpo d'occhio!). Anche se, stranamente, alcune pagine che sto convalidando producono pile di avvertimenti "Unimplemented block at xmlschemas.c: 27443" - ma poi procedono a segnalare che sono validi senza errori. Non sono arrivato al fondo del modello di quelli che sono e non sono a questo punto. – NeilS