如何获取XML架构设置的默认值?
我有一个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”属性的值。