Я получаю данные XML с сервера, сохраняю их в виде строки, содержащей несколько полей с одинаковыми именами, а также вложенные данные.Как мне разобрать это правильно?Вот пример того, как это может выглядеть.
<Product>
<ProductNumber>14432</ProductNumber>
<CreationDate>2019</CreationDate>
<ProductVersion>
<Config>A</Config>
<Design>1</Design>
<DesignCreated>2018</DesignCreated>
<DesignedBy>Jon</DesignedBy>
<Design>2</Design>
<DesignCreated>2019</DesignCreated>
<DesignedBy>Doe</DesignedBy>
</ProductVersion>
</Product>
Пока я занимаюсь
import ElementTree as ET
tree = ET.fromstring(content_string))
Проблема в том, что я не могу получить доступ к каким-либо данным внутриProductVersion делает это.Когда я звоню
tree.find('ProductVersion')
, я получаю
attrib: {}
tag 'ProductVersion'
tail: None
text: None
Итак, что я сделал до сих пор:
product_version_start = str(content_string).find("<ProductVersion>")-2
product_version_end = str(content_string).find("</ProductVersion>")+15
Чтобы найти подстроку в моей строке XML и создатьновое дерево из этого.
tree_productVersion = ET.fromstring(content_string[product_version_start:product_version_end])
Но теперь, когда я пытаюсь
tree_productversion.find('Design').text
, возвращается только первое поле.Я хочу получить доступ ко всем полям и получить всю информацию.
Итак, поэтому у меня два вопроса, есть ли лучший способ для анализа вложенных данных?И как мне проанализировать все поля, если они имеют одинаковые имена?