J'ai trouvé quelques articles faisant allusion au fait que vous pouvez valider XHTML contre sa DTD en utilisant la gemme nokogiri. Alors que j'ai réussi à l'utiliser pour analyser XHTML avec succès (en recherchant des balises 'a' etc.), j'ai du mal à valider les documents.Comment valider XHTML avec nokogiri?
Pour moi, ceci:
doc = Nokogiri::XML(Net::HTTP.get(URI.parse("http://www.w3.org")))
puts doc.validate
résultats dans un tas de:
[
#<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.]
]
Je suppose donc que ce n'est pas la bonne approche. Je n'arrive pas à trouver de bons exemples - quelqu'un peut-il suggérer ce que je fais de mal?
Je cours ruby 1.8.6 sur Mac OSX 10.5.8. Nokogiri me dit:
nokogiri: 1.3.3
warnings: []
libxml:
compiled: 2.6.23
loaded: 2.6.23
binding: extension
C'est génial - il est certainement me produire d'aspect raisonnable des résultats (un coup d'oeil!). Bien que, curieusement, certaines pages que je valide produisent des piles d'avertissements "Unimplemented block at xmlschemas.c: 27443" - mais continuent à signaler qu'elles sont valides sans erreurs. Je ne suis pas au bout du schéma de ce que sont et ne sont pas en ce moment. – NeilS