2009-08-10 10 views

Répondre

16

Comment utiliser lxml?

De la documentation:

>>> 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

Merci! Bien que lxml ne supporte pas la syntaxe compacte, il est possible de le convertir en xml avec Trang http://www.thaiopensource.com/relaxng/trang.html – Epeli

+0

Y at-il un moyen d'obtenir des commentaires utiles lorsque le document n'est pas valide, au lieu de juste faux? –

+0

Si quelqu'un arrive et arrive à ce point et se demande s'il y a une réponse à la question précédente, la réponse est oui. La liste des problèmes est conservée dans 'relaxng.error_log' (dans le contexte du code ci-dessus). –

Questions connexes