当前位置: 首页 > 面试题库 >

如何在Python中针对DTD文件验证xml

相野
2023-03-14
问题内容

我需要针对DTD描述文件验证XML字符串(而不是文件)。

怎么做python呢?


问题答案:

另一个不错的选择是lxml的验证,我觉得使用起来很愉快。

来自lxml站点的一个简单示例:

from StringIO import StringIO

from lxml import etree

dtd = etree.DTD(StringIO("""<!ELEMENT foo EMPTY>"""))
root = etree.XML("<foo/>")
print(dtd.validate(root))
# True

root = etree.XML("<foo>bar</foo>")
print(dtd.validate(root))
# False
print(dtd.error_log.filter_from_errors())
# <string>:1:0:ERROR:VALID:DTD_NOT_EMPTY: Element foo was declared EMPTY this one has content


 类似资料:
  • 我需要针对给定的XSD文件验证多个XML文件。问题是XSD由两个文件组成。它们是嵌套的,尽管我知道哪个是第一个(其他文件的“父”)。在XML文件中,我使用命名空间来定义子节点在哪个XSD中定义

  • 我们都知道DTD是用来精确描述XML文档,DTD根据相应XML语言的语法规则检查XML文档的结构和词汇的有效性。 现在检查DTD的有效性,可以使用以下程序 - 使用XML DTD验证工具 - 可以使用某些IDE(如XML Spy(非免费)和XMLStarlet(opensource)来验证针对DTD文档的XML文件。 使用XML DTD在线验证器 - W3C标记验证服务旨在验证Web文档。 使用在

  • 我试图根据Python中的JSON模式验证TSV文件的行。下面是该模式的一个示例: TSV文件如下所示: null

  • 问题内容: 我需要使用给定的XSD文件验证XML文件。我只需要如果验证正常就返回true,否则返回false的方法。 问题答案: 仅返回true或false(也不需要任何外部库):

  • 问题内容: 我正在尝试针对许多不同的模式(对人为的示例表示歉意)来验证XML文件: xsd 格式 格式 c.xsd特别是导入b.xsd和b.xsd导入a.xsd,使用: 我正在尝试通过Xerces以以下方式执行此操作: 但这无法正确导入所有三个架构,导致无法将名称“ blah”解析为一个(n)“ group”组件。 我已经使用 Python 成功地验证了这一点,但是 Java 6.0 和 Xerc

  • 问题内容: 我有工作,并为我解编和编组XML转换为Java对象,反之亦然。现在,我试图根据我们的模式(test.xsd)来验证我们的XML。假设我的XML中缺少任何必填字段,那么我想根据模式test.xsd验证XML后知道哪个字段缺失。 如何根据test.xsd模式验证XML。我的test.xsd模式路径是- C:\ workspace \一\二\三\ src \ main \ java \ co