从xml python

时间:2018-01-12 16:10:24

标签: python xml

我有一个xml文件,更短的版本如下:

<?xml version="1.0" encoding="UTF-8"?>
<DATA>
<_1>
<member_id>AFCE6DB97D4CD67D</member_id>
</_1>
<_2>
<member_id>AFCE6DB97D4CD67D</member_id>
</_2>
</DATA>

我使用以下代码解析

tree = ElementTree.parse(args['inputxml'])
root = tree.getroot()
for dat in root:
    memberID = dat.find('member_id').text

我能够解析成员ID,但不知道如何解析序列号<_1>``<_2>等。这个数字随着xml中的每个新记录而不断扩展。

1 个答案:

答案 0 :(得分:1)

您可以使用xpath()

xml = """<?xml version="1.0" encoding="UTF-8"?>
<DATA>
<_1>
<member_id>AFCE6DB97D4CD67D</member_id>
</_1>
<_2>
<member_id>AFCE6DB97D4CD67D</member_id>
</_2>
</DATA>"""


root = etree.fromstring(xml)
members = root.xpath("//member_id")

for m in members:
    print m.text, m.getparent().tag

打印:

AFCE6DB97D4CD67D _1
AFCE6DB97D4CD67E _2