29
A
回答
29
另一个不错的选择是lxml's validation,我觉得这很好用。
从lxml的网站采取了一个简单的例子:
from StringIO import StringIO
from lxml import etree
dtd = etree.DTD(StringIO("""<!ELEMENT foo EMPTY>"""))
root = etree.XML("<foo/>")
print(dtd.validate(root))
# True
root = etree.XML("<foo>bar</foo>")
print(dtd.validate(root))
# False
print(dtd.error_log.filter_from_errors())
# <string>:1:0:ERROR:VALID:DTD_NOT_EMPTY: Element foo was declared EMPTY this one has content
7
从libxml2的Python绑定的例子目录:
#!/usr/bin/python -u
import libxml2
import sys
# Memory debug specific
libxml2.debugMemory(1)
dtd="""<!ELEMENT foo EMPTY>"""
instance="""<?xml version="1.0"?>
<foo></foo>"""
dtd = libxml2.parseDTD(None, 'test.dtd')
ctxt = libxml2.newValidCtxt()
doc = libxml2.parseDoc(instance)
ret = doc.validateDtd(ctxt, dtd)
if ret != 1:
print "error doing DTD validation"
sys.exit(1)
doc.freeDoc()
dtd.freeDtd()
del dtd
del ctxt
相关问题
- 1. 验证XML和DTD
- 2. 在浏览器中验证XML和DTD
- 3. XML文件中没有包含DTD声明的XML文件的Java DTD验证?
- 4. 关于XML文件的DTD验证
- 5. Java XML DTD验证
- 6. XML DTD failling验证
- 7. 如何根据给定的DTD文件验证XML文件?
- 8. 使用dtd文档验证xml文档
- 9. 如何使用java验证xml与dtd?
- 10. 如何加快PHP的XML DTD验证?
- 11. 如何使用java验证XML对DTD?
- 12. .NET:如何验证与DTD XML文件,而不DOCTYPE声明
- 13. 如何验证没有DTD的xml文件
- 14. 在JavaScript中验证XML与DTD?
- 15. DTD文件需要验证
- 16. XML DTD内部不验证
- 17. 使用XML DTD验证YAML
- 18. DataSet.ReadXML()根据DTD验证XML
- 19. VB.Net - 使用DTD验证XML
- 20. DTD元素的XML验证
- 21. XML命名空间和DTD验证
- 22. 验证有效的XML和DTD
- 23. 验证XML和DTD时的问题
- 24. 如何将本地DTD文件的验证应用于java中的xml文件?
- 25. 使用Java根据本地DTD文件验证XML文件
- 26. 使用Python和lxml针对外部DTD验证XML
- 27. Linq to XML - 针对dtd验证xml
- 28. 如何在ant中验证xml文件?
- 29. Maven中的XML DTD/Schema验证
- 30. 禁用DTD中的javax XML验证
注意,libxml2的绑定不支持Python标准库的一部分,即没有内置。 – ChuckB 2008-11-07 15:42:28