2

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

有什么实现xml.dom.minidom吗?

4

2 回答 2

1

顾名思义,miniDom 是一个用于与文档对象模型(DOM) API 交互的库。正如维基百科所说:

文档对象模型 (DOM) 是一种跨平台且与语言无关的约定,用于表示 HTML、XHTML 和 XML 文档中的对象并与之交互。

它不关注文档的“有效性”,只关注它的格式正确并且能够被解析和浏览。

因此,miniDom 将没有任何 XML 验证功能,因为这超出了 DOM API 的范围。

于 2013-10-17T04:54:22.680 回答
1

我找不到任何使用 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)用来引发断言异常

于 2013-10-24T06:09:00.320 回答