我正在使用pyXB绑定XML。

我在那里使用的模式具有选择元素。

所以当我将XML转换成python实例时

我不知道确切选择元素选择哪个元素。

因此,为了区分,我不得不考虑所有情况使用if / else语句。

例如,如果选择元素具有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'

该示例非常简单,并且if / else看起来足够,但是如果choice元素具有太多的元素(约100个以上)。

该处理(如果/否则重复)将非常糟糕。

还有其他方法可以知道选择了哪个元素吗?

===============>>#1 票数:0

是; 在复杂类型实例上有一个orderedContent方法,可用于确定实例中存在哪些元素。 用户文档中所述 ,当架构未强制顺序执行时,这也可用于恢复元素的文档顺序。

请注意,orderedContent列表的成员被包装在提供有关它们的信息的对象中,因此,要获取基础内容绑定,您必须深入研究包装器的value属性。

  ask by SangminKim translate from so

未解决问题?本站智能推荐:

1回复

PyXB XML对象转换为字符串

给定一个PyXB对象,如何将其转换为字符串? 我使用PyXB生成了XML文档,然后我想使用xmltodict模块将其转换成字典。 问题是xmltodict.parse需要一个类似字节的对象,而PyXB对象当然不是。
1回复

无法绑定到具有嵌套(匿名)类型的pyxb类

我遵循了该线程和XML的说明: 我使用此工具在线创建了以下XSD架构。 然后,我在外壳pyxben -u my_schema.csd -m my_schema中调用pyxben -u my_schema.csd -m my_schema ,然后尝试使用绑定构建对象: 到目
1回复

PyXB的端到端示例。 从XSD架构到XML文档

我很难开始使用PyXB 。 假设我有一个XSD文件 (XML模式)。 我想要: 使用PyXB根据模式定义Python对象。 将这些对象保存为磁盘,作为满足模式的XML文件。 我怎么能用PyXB做到这一点? 下面是一个编码地址的XSD文件(来自维基百科)的简单示
1回复

使用PYXB解析XML。 无法获得嵌套的匿名元素

我使用命令在以下xsd文件上使用PYXB(pyxbgen)创建了Python绑定: 使用生成的绑定,我可以访问所有“事件”数据,但我看不到如何访问“详细”元素和数据。 具体来说,形状元素的椭圆和多边形(带顶点数据)。 detail元素是匿名类型。 这是我到目前为止的代码:
1回复

PyXB的示例:生成Python代码并在XML元素内获取属性值

我很难开始使用PyXB。 让我们以这个XML文件为例: 假设我成功创建了Python库pol.py: Python代码 我了解可以在Element中获取内容(例如order.billTo.name = Robert Smith),但是如何从属性“国家”(即“美国”)中
1回复

通过PyXB生成的Python不会对XSD文件进行验证:如何生成以及如何验证?

我正在学习如何使用XML Schema文档生成符合所述模式的XML文件。 我已经了解了PyXB为XML Schema定义的数据结构生成Python绑定。 这篇SO帖子展示了如何生成符合给定XML Schema的XML文件的“端到端”示例。 为了提供信息, 帖子有助于消化这两个链接中
1回复

将具有冲突元素的两个pyxb绑定导入同一名称空间

我有几个XSD文件,通过它们我们用pyxb (1.2.6)生成了python绑定。 每个XSD文件都使用相同的名称空间。 其中一些定义具有相同名称的元素( MyNamedElement )。 结果,一次导入两个这样的绑定会产生以下错误: 我不必同时使用两个绑定,因此,只要有可能,只
1回复

如果仅选择某些XML属性的语句

我正在尝试从XML文件中获取2个不同的元素; 我正在尝试在散点图上将它们打印为x和y。 我可以设法同时获得这两个元素,但一个列表的长度为155,而另一个列表的长度仅为50。 所以,我需要添加一个if语句只需选择from有关联的元素windSpeed元素。 然后,我尝试获取tim
1回复

pyxb无法识别DOMRootNodeError

我有以下xml架构: 我使用pyxbgen -u DataPackage.xsd -m DataPackage生成了相应的python类,并使用它们来生成以下xml代码: 如果我尝试在python解释器中使用以下内容阅读此内容: 我得到例外: 有人知道怎么了吗?
1回复

需要PyXB帮助

因此,我使用PyXB创建了python绑定,以便基于xsd模式创建xml文件。 这是模式: <?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (C) 2011 Nokia Siemens Netwo