Andrew C
Andrew C

Reputation: 45

Store XML values as Python list

I have XML stored as a string "vincontents", formatted as such:

<response>
    <data>
        <vin>1FT7X2B69CEC76666</vin>
    </data>
    <data>
        <vin>1GNDT13S452225555</vin>
    </data>
</response>

I'm trying to use Python's elementtree library to parse out the VIN values into an array or Python list. I'm only interested in the values, not the tags.

def parseVins():
content = etree.fromstring(vincontents)
vins = content.findall("data/vin")
print vins

Outputs all of the tag information:

[<Element 'vin' at 0x2d2eef0>, <Element 'vin' at 0x2d2efd0> ....

Any help would be appreciated. Thank you!

Upvotes: 1

Views: 942

Answers (1)

alecxe
alecxe

Reputation: 473813

Use .text property:

>>> import xml.etree.ElementTree as etree
>>> data = """<response>
...     <data>
...         <vin>1FT7X2B69CEC76666</vin>
...     </data>
...     <data>
...         <vin>1GNDT13S452225555</vin>
...     </data>
... </response>"""
>>> tree = etree.fromstring(data)
>>> [el.text for el in tree.findall('.//data/vin')]
['1FT7X2B69CEC76666', '1GNDT13S452225555']

Upvotes: 4

Related Questions