2009-08-10 14 views
7

पायथन में कॉम्पैक्ट RELAX एनजी स्कीमा के माध्यम से मैं XML दस्तावेज़ को कैसे सत्यापित करूं?पायथन में RELAX एनजी स्कीमा का उपयोग करके मैं XML दस्तावेज़ को कैसे सत्यापित करूं?

+0

[अजगर में एक XML स्कीमा के साथ सत्यापित किया जा रहा] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/299588/validating-with-an-xml-schema-in -पीथॉन) –

+0

@ टोरोक गैबर उस प्रश्न को आराम करने के बारे में नहीं पूछता है – oob

उत्तर

16

lxml का उपयोग करने के बारे में कैसे?

डॉक्स से

:

>>> f = StringIO('''\ 
... <element name="a" xmlns="http://relaxng.org/ns/structure/1.0"> 
... <zeroOrMore> 
...  <element name="b"> 
...  <text /> 
...  </element> 
... </zeroOrMore> 
... </element> 
... ''') 
>>> relaxng_doc = etree.parse(f) 
>>> relaxng = etree.RelaxNG(relaxng_doc) 

>>> valid = StringIO('<a><b></b></a>') 
>>> doc = etree.parse(valid) 
>>> relaxng.validate(doc) 
True 

>>> invalid = StringIO('<a><c></c></a>') 
>>> doc2 = etree.parse(invalid) 
>>> relaxng.validate(doc2) 
False 
+0

धन्यवाद! एल्थॉट एलएक्सएमएल कॉम्पैक्ट सिंटैक्स का समर्थन नहीं करता है, इसे ट्रैंग के साथ एक्सएमएल में परिवर्तित करना संभव है http://www.thaiopensource.com/relaxng/trang.html – Epeli

+0

क्या दस्तावेज़ वैध नहीं है, इसके बजाय उपयोगी प्रतिक्रिया प्राप्त करने का कोई तरीका है बस झूठा? –

+0

यदि कोई व्यक्ति साथ आता है और इस बिंदु पर जाता है और आश्चर्य करता है कि पिछले प्रश्न का उत्तर है, तो जवाब हाँ है। मुद्दों की सूची 'relaxng.error_log' (ऊपर दिए गए कोड के संदर्भ में) में रखी गई है। –

संबंधित मुद्दे