如何通過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