如何创建一个 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
我正在使用 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