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