मुझे इस तथ्य की ओर इशारा करते हुए कुछ पोस्ट मिल गई हैं कि आप अपने डीटीडी के खिलाफ नोकोगिरी मणि का उपयोग करके एक्सएचटीएमएल को मान्य कर सकते हैं। जबकि मैंने इसका उपयोग एक्सएचटीएमएल को सफलतापूर्वक पार्स करने के लिए किया है ('ए' टैग आदि की तलाश में), मैं दस्तावेजों को प्रमाणित करने के लिए संघर्ष कर रहा हूं।मैं एक्सएचटीएमएल को नोकोगिरी के साथ कैसे मान्य करूं?
मेरे लिए, यह: की एक पूरी ढेर में
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.]
]
तो मुझे लगता है कि सही दृष्टिकोण नहीं है यह सोचते हैं रहा हूँ। मुझे किसी भी अच्छे उदाहरण का पता लगाना प्रतीत नहीं होता - क्या कोई सुझाव दे सकता है कि मैं क्या गलत कर रहा हूं?
मै मैक ओएसएक्स 10.5.8 पर रूबी 1.8.6 चला रहा हूं। नोकोगिरी मुझे बताता है:
nokogiri: 1.3.3
warnings: []
libxml:
compiled: 2.6.23
loaded: 2.6.23
binding: extension
बहुत बढ़िया - यह निश्चित रूप से उत्पादन है मुझे उचित दिखने परिणाम (एक नज़र में!)। हालांकि, विचित्र रूप से, कुछ पेज जिन्हें मैं "xmlschemas.c: 27443" पर अनुपूरक ब्लॉक का उत्पादन ढेर मान्य कर रहा हूं - लेकिन फिर रिपोर्ट करने के लिए आगे बढ़ें कि वे कोई त्रुटि नहीं हैं। मुझे इस पैटर्न के निचले भाग तक नहीं मिला है और इस बिंदु पर नहीं हैं। – NeilS