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 属性は、XML 要素が Python 属性として公開されるのとまったく同じ方法で、PyXB によって Python 属性として公開されます。したがって、次のようにします。

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

XML では、属性と要素は異なる名前空間にありますが、Python では名前空間を共有しているため、属性と要素の両方に同じ名前が使用されている場合、属性は PyXB によって名前が変更されます。この場合、バインディングが生成されると、診断が出力されます。このプロセスの詳細については、名前の競合の解消を参照してください。

于 2013-12-26T19:02:43.177 に答える