如何通过Python中紧凑的RELAX NG模式验证XML文档?如何在Python中使用RELAX NG模式验证XML文档?
回答
如何使用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
谢谢!尽管lxml不支持紧凑语法,但可以使用Trang将其转换为xml http://www.thaiopensource.com/relaxng/trang.html – Epeli 2009-08-11 08:51:13
有没有一种方法可以在文档无效时获得有用的反馈,而不是只是假? – 2012-09-17 07:47:37
如果有人来到这里,并想知道前面的问题是否有答案,答案是肯定的。问题列表保存在'relaxng.error_log'中(在上面的代码中)。 – 2013-03-17 12:19:37
- 1. 在Java中使用RELAX NG模式验证xml文件(IDE - Eclipse)
- 2. 是否有一个JavaScript库来验证XML对RELAX NG模式
- 3. 如何通过Ruby中的RELAX NG验证XML?
- 4. 如何使用多个XML模式验证xml文档
- 5. 验证使用NG模式
- 6. 如何使用xml模式验证xml?
- 7. 自定义XML文档的验证模式
- 8. 如何验证XSD(模式文档)?
- 9. 使用XML Schema来验证XML文档
- 10. 仅使用模式验证XML文档的一部分?
- 11. Spring JAXB - 使用模式验证解组XML文档
- 12. Emded XHTML片段在XML文档中,并根据模式验证
- 13. 如何使用.NET验证内存模式中的XML文件?
- 14. 根据xml模式验证xml文件
- 15. 如何使用emacs nxml模式使用xsd模式验证某个xml文件?
- 16. 如何使用XSD模式在Java中验证XML
- 17. 如何在Firefox中使用javascript验证xml模式?
- 18. 使用Xerces-j验证XML文档
- 19. 验证XML文档并使用数字
- 20. 使用java api在模式数据库中验证文档xsd
- 21. 验证XML模式的XML模式?
- 22. 如何使用Scala验证XML文件的模式?
- 23. 如何在Android中签署XML文档或验证XML文档签名
- 24. 有没有可以帮助某人创建基于Relax NG模式的XML文档的应用程序?
- 25. 读取状态从失败的RELAX NG验证在HXT
- 26. 使用.NET根据模式验证XML
- 27. 使用XSD进行XML模式验证
- 28. 在Google App Engine中使用Jing。无法加载给定Relax NG模式的SchemaFactory
- 29. XMLSerialization和XML模式验证
- 30. XElement的XML模式验证
[与在Python XML模式验证]的可能重复(http://stackoverflow.com/questions/299588/validating-with-an-xml-schema-in -python) – 2010-11-26 18:01:58
@TörökGábor那个问题没有问过关于放松 – oob 2012-04-15 03:40:21