0

我很难开始使用 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”)中获取值?

提前致谢!

参考: http: //pyxb.sourceforge.net/userref_pyxbgen.html

4

1 回答 1

3

XML 属性由 PyXB 公开为 Python 属性,其方式与 XML 元素公开为 Python 属性的方式完全相同。所以你只需这样做:

print(order.billTo.name)
print(order.billTo.country)

在 XML 中,属性和元素位于不同的命名空间中,而在 Python 中它们共享一个命名空间,因此如果属性和元素使用相同的名称,则属性将由 PyXB 重命名。在这种情况下生成绑定时会发出诊断信息。有关此过程的详细信息,请参阅消除名称冲突。

于 2013-12-26T19:02:43.177 回答