我正在使用pyXB来绑定XML。
我在那里使用的架构有选择元素。
所以当我将XML转换为python实例时
我不确切知道在选择元素中选择了哪个元素。
因此,为了区分,我必须考虑所有情况使用if / else语句。
例如,如果choice元素有a和b,则区分a和b中的一个
A = binder.CreateFromDocument(xml) #bind into a python instance
#At this point, i don't know which element is included
#So I have to check using if/else
if A.a:
#processing in the case of a
A.a.aa = 'a'
else if A.b:
#processing in the case of b
A.b.bb = 'b'
示例非常简单,如果/ else看起来足够,但是如果choice元素包含的元素数量超过100个。
处理(重复if / else)会很糟糕。
有没有其他方法可以知道选择了哪个元素?
答案 0 :(得分:0)
是;复杂类型实例上有一个方法orderedContent,可用于确定实例中存在哪些元素。如[{3}}所述,当模式未强制执行订单时,这也可用于恢复元素的文档顺序。
请注意,orderedContent列表的成员包含在提供有关它们的信息的对象中,因此要获取底层内容绑定,您必须深入查看包装器的in the user documentation属性。