PYXB:忽略缺失属性

0 投票
1 回答
580 浏览
提问于 2025-04-18 08:45

我正在用Pyxb解析一些XML数据,但发现一个必需的属性在XML里缺失了。我捕捉到了一个叫MissingAttributeError的错误,它告诉我:

Instance of <class 'TestXML.TEST.CTD_ANON_27'> lacks required attribute how

我的问题是,尽管XML数据中缺少了一个必需的属性,是否还有办法解析这些XML数据呢?因为其他的XML数据都是有效的,仍然可以使用。

1 个回答

0

你可以关闭验证。可以像下面这样做(这是测试套件中的一部分):

xmls = '<Element/>'
pyxb.RequireValidWhenParsing(True)
self.assertRaises(MissingAttributeError, CreateFromDocument, xmls)
pyxb.RequireValidWhenParsing(False)
self.assertFalse(pyxb._ParsingRequiresValid)
instance = CreateFromDocument(xmls)

需要注意的是,PyXB 并不打算处理无效的文档,所以生成的绑定可能无法完全反映 XML 的内容。

撰写回答