是否有任何纯Python方法可以使用XSD验证XML文件。我的python版本是2.x(2.6 / 2.7),代码已经使用xml.dom.minidom
进行XML解析。 StackOverflow上有很多答案,但大多数都使用ElementTree或lxml。
是否有xml.dom.minidom
的实施?
答案 0 :(得分:1)
顾名思义,miniDom是一个用于与Document Object Model(DOM)API交互的库。正如维基百科所述:
文档对象模型(DOM)是一种跨平台且与语言无关的约定,用于表示HTML,XHTML和XML文档中的对象并与之交互。
它没有关注文档的“有效性”,只是它格式良好,能够被解析和浏览。
因此,miniDom将不具备任何XML验证功能,因为这超出了DOM API的范围。
答案 1 :(得分:0)
我找不到任何使用minidom的东西,所以我使用lxml来验证xml对xsd
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)
来引发断言异常