gpt4 book ai didi

python - 如何让 Python 的 ElementTree 强制执行 XML 模式?

转载 作者:太空宇宙 更新时间:2023-11-04 09:01:38 25 4
gpt4 key购买 nike

假设我想解析一个 XML 文档,它的模式规定给定的元素只能出现一次。

如果元素出现两次或更多次,我如何确保引发异常?

或者,如果架构规定给定元素的值应该是一个整数,并且该值是“火鸡三明治”,我该如何让解析器像预期的那样崩溃和燃烧?

ElementTree 能做到吗?什么都可以做到这一点?这个问题有道理吗?

最佳答案

STD 库中的 ElementTree 不支持模式。为此,我建议您使用 lxml包含它的包(顺便说一下,它要快得多)。

下面是我自己的代码示例:

from lxml import etree

# Create the schema object
with open(xsd_file) as f:
xmlschema_doc = etree.parse(f)
xmlschema = etree.XMLSchema(xmlschema_doc)

# Create a tree for the XML document
doc = etree.parse(xml_text)

# Validate the XML document using the schema
return xmlschema.validate(doc)

或者如果你想抛出异常:

xmlschema.assertValid(doc)

关于python - 如何让 Python 的 ElementTree 强制执行 XML 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24729030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com