【问题标题】:Python xml.dom.minidom schema validationPython xml.dom.minidom 模式验证
【发布时间】:2013-09-24 14:08:18
【问题描述】:

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

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

【问题讨论】:

    标签: python xml validation python-2.7 xsd


    【解决方案1】:

    顾名思义,miniDom 是一个用于与Document Object Model (DOM) API 交互的库。正如维基百科所说:

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

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

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

    【讨论】:

    • 是的,但我想如果有任何其他模块可以在 minidom 的帮助下做到这一点,没有 elementtree。我不想使用 lxml
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-01-27
      • 1970-01-01
      • 2019-04-13
      • 1970-01-01
      • 1970-01-01
      • 2021-01-15
      • 2011-03-10
      • 2021-05-18
      • 2018-02-05
      相关资源
      最近更新 更多