Я использую lxml для создания файла json на основе xml.XML-файл имеет такую структуру:
<spots_list>
<spot id="001" latitude="2011464" longitude="979511">
<adress>Somewhere</adress>
<city>BOSTON</city>
<price category="Intermediate" value="782"/>
<price category="Expensive" value="2765"/>
<price category="Cheap" value="12"/>
</spot>
<spot id="002" latitude="2101644" longitude="915971">
<adress>Somewhere else (very very far away)</adress>
<city>CAMBRIDGE</city>
<price category="Intermediate" value="472"/>
<price category="Intermediate (but less expensive)" value="422"/>
<price category="Expensive" value="20275"/>
<price category="Cheap" value="12"/>
</spot>
</spots_list>
Количество элементов цены в каждом может меняться, поэтому я попытался использовать цикл while в Python.Вот ассоциированный код:
from lxml import etree
tree = etree.parse("my_file.xml")
for node in tree.xpath("//spots_list/spot"):
for adress in node.xpath("adress"):
adr = adress.text
while node.xpath("price"):
print(adr)
Я знаю, что это неправильно, потому что первый адрес появляется снова и снова, но я не понимаю, как сформулировать этот цикл для переключения на следующие элементы ...
Заранее спасибо.