我很难开始使用PyXB。
让我们使用这个XML文件:
<?xml version="1.0"?>
<purchaseOrder orderDate="1999-10-20">
<shipTo country="US">
<name>Alice Smith</name>
<street>123 Maple Street</street>
<city>Anytown</city><state>AK</state><zip>12341</zip>
</shipTo>
<billTo country="US">
<name>Robert Smith</name>
<street>8 Oak Avenue</street>
<city>Anytown</city><state>AK</state><zip>12341</zip>
</billTo>
</purchaseOrder>
说我是否设法创建了Python库pol.py:
Python代码
import po1
xml = open('po1.xml').read()
order = po1.CreateFromDocument(xml)
我知道我可以在Element中获取内容(例如order.billTo.name = Robert Smith),但是如何从属性“country”(即“US”)获取值?
提前致谢!
答案 0 :(得分:3)
PyXB将XML属性公开为Python属性,其方式与XML元素作为Python属性公开的方式完全相同。所以你只是这样做:
print(order.billTo.name)
print(order.billTo.country)
在XML中,属性和元素位于不同的名称空间中,而在Python中它们共享一个名称空间,因此如果属性和元素使用相同的名称,则属性将由PyXB重命名。在这种情况下生成绑定时会发出诊断信息。有关此流程的详细信息,请参阅Deconflicting Names。