проблема с парсингом xml на python
начал учить python и обработку xml документов на этом языке, но столкнулся с проблемой выбора библиотек, а следовательно и с обработкой документа вовсе. Был период когда я писал на C# и там вытяжка из xml тех данных, которые мне были нужны имела вид:
XmlNodeList xmlNode = xmlDocument.GetElementsByTagName("rank");
var xmlNodeinList = xmlNode.Cast<XmlNode>().Select(x => x.InnerText).ToList();
var res = string.Join("\n", xmlNodeinList.ToArray());
Подскажите пожалуйста, как можно переписать данный фрагмент кода на python или как получить данные со всех тэгов 'rank' документа и поместить их в строку. Заранее спасибо. Сам xml ниже(количество узлов неограниченно):
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
Ответы (1 шт):
Автор решения: greg zakharov
→ Ссылка
В Python есть xml.etree.ElementTree, вполне годная для разбора xml вещь. Например:
from xml.etree.ElementTree import fromstring
xdoc='''<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
'''
print(*[x.find('rank').text for x in fromstring(xdoc).findall('country')])