如何创建一个 class 来描述元素的 XML 属性?

How to create a class to describe the XML attribute of an element?

我正在使用 tornado-webservices

示例XML:

<BuildingList CID=”LTP01831”>
    <Building>
        <BAID>01</BAID>
        <BAName>BuildingA</BAName>
        <UpdNo>13</UpdNo>
    </Building>
    ….
</BuildingList>

对应类:

class Building(complextypes.ComplexType):
    BAID = str
    BAName = str
    UpdNo = str

class BuildingList(complextypes.ComplexType):
    list = [Building]

如何描述元素 "BuildingList" 中的属性 "CID"?

或其他建议的图书馆?

我假设你只对 xml 解析感兴趣,这里有一个简短的演示,minidom 是我使用的第一个 python 库。

from xml.dom import minidom

dom = minidom.parse('test.xml')
nodeList = dom.getElementsByTagName('BuildingList')
cid = nodeList[0].getAttribute('CID')
for node in nodeList:
    blist = dom.getElementsByTagName('Building')
    for bnode in blist:
        ba_id = dom.getElementsByTagName('BAID')[0].firstChild.nodeValue
        ba_name = dom.getElementsByTagName('BAName')[0].firstChild.nodeValue
        upd_no = dom.getElementsByTagName('UpdNo')[0].firstChild.nodeValue
        line = '{0} {1} {2} {3}'.format(cid, ba_id, ba_name, upd_no)
        print line

~
结果是:

LTP01831 01 BuildingA 13