是否有任何纯 Python 方法可以使用 XSD 验证 XML 文件。我的 python 版本是 2.x (2.6/2.7) 并且代码已经xml.dom.minidom
用于 XML 解析。StackOverflow 上有很多答案,但大多数都使用 ElementTree 或 lxml。
有什么实现xml.dom.minidom
吗?
是否有任何纯 Python 方法可以使用 XSD 验证 XML 文件。我的 python 版本是 2.x (2.6/2.7) 并且代码已经xml.dom.minidom
用于 XML 解析。StackOverflow 上有很多答案,但大多数都使用 ElementTree 或 lxml。
有什么实现xml.dom.minidom
吗?
顾名思义,miniDom 是一个用于与文档对象模型(DOM) API 交互的库。正如维基百科所说:
文档对象模型 (DOM) 是一种跨平台且与语言无关的约定,用于表示 HTML、XHTML 和 XML 文档中的对象并与之交互。
它不关注文档的“有效性”,只关注它的格式正确并且能够被解析和浏览。
因此,miniDom 将没有任何 XML 验证功能,因为这超出了 DOM API 的范围。
我找不到任何使用 minidom 的东西,所以我使用 lxml 来针对 xsd 验证 xml
from lxml import etree
xmlschema_doc = etree.parse('schema.xsd')
xml_doc = etree.parse('my.xml')
xmlschema = etree.XMLSchema(xmlschema_doc)
if xmlschema.validate(xml_doc):
print 'Valid xml'
else:
print 'Invalid xml'
我们也可以xmlschema.assertValid(xml_doc)
用来引发断言异常