如何获取XML架构设置的默认值?

3 投票
2 回答
1237 浏览
提问于 2025-04-16 19:09

我有一个xml模式,它为一个可选字段指定了一个默认值...

<xs:element name="expiry" type="xs:positiveInteger" default="86400"/>

我正在使用lxml来解析传入的xml...

root = lxml.etree.XML(xml)

当我去查找这个可选元素时,如果它不存在,我得到的结果是'None'...

expiry = root.findtext('expiry')

我该如何让过期值默认变成模式中的默认值(86400)呢?

2 个回答

0

首先,你需要引入你的模式(schema),可以使用 lxml.etree.XMLSchema。

我觉得这个主要是用来验证的,不过你可以试着把你的 XML 和模式一起解析,看看“默认”值是否会出现。

1

这件事不能靠“魔法”来完成。现在唯一的方法就是走弯路。

也就是说:把xmlschema当作一个xml文档来读,找到带有“expiry”这个属性的元素标签,然后在这个标签里找“default”属性的值。

撰写回答