Python xml.dom.minidom模式验证

时间:2013-09-19 13:09:42

标签: python xml validation python-2.7 xsd

是否有任何纯Python方法可以使用XSD验证XML文件。我的python版本是2.x(2.6 / 2.7),代码已经使用xml.dom.minidom进行XML解析。 StackOverflow上有很多答案,但大多数都使用ElementTree或lxml。

是否有xml.dom.minidom的实施?

2 个答案:

答案 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)来引发断言异常