Хранить значения XML в виде списка Python

#python #xml #parsing #xml-parsing #elementtree

#python #xml #синтаксический анализ #xml-синтаксический анализ #elementtree

Вопрос:

У меня есть XML, сохраненный в виде строки «vincontents», отформатированной как таковая:

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

Я пытаюсь использовать библиотеку elementtree Python для разбора значений VIN в массив или список Python. Меня интересуют только значения, а не теги.

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

Выводит всю информацию о теге:

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

Любая помощь будет оценена. Спасибо!

Ответ №1:

Использовать .text свойство:

 >>> 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']