У меня есть комплекс xml Я пытаюсь извлечь данные из.
<?xml version="1.0" ?>
<root xmlns="something.something.com">
<Save>
<AdditionalInfo>
<Name></Name>
<Time></Time>
<UtilityVersion></UtilityVersion>
<XMLVersion></XMLVersion>
<PluginName></PluginName>
<ClassName></ClassName>
</AdditionalInfo>
<Data>
<session>
<xyDataObjects>
<xyData Key="'info'" ObjectType="moreinfo" Type="evenmoreinfo">
<axis1QuantityType ObjectType="guesswhat" Type="info!">
<label></label>
<type></type>
</axis1QuantityType>
... and so on and so on
Файл имеет несколько блоков, начинающихся и заканчивающихся блоками Сохранить и / Сохранить, и информация, которую я ищу, может быть как вплоть до метки, так и даже дальше.
ElementTree.Iter, казалось, был моим решением, так как он будет проходить через каждый блок Save и находить информацию <label>
, которую я ищу, но, к сожалению, он не принимает аргумент пространства имен.
Какие другие мои опции? Я пытаюсь сохранить свой код гибким, так как предвижу, что структура файла xml может измениться в будущем, и будет простым, поэтому я бы не стал реализовывать что-то вроде:
tree= ET.parse('dblank.xml')
root = tree.getroot()
for i in range(len(root)):
Array[i]=root[i][1][0][0][0][0][0].text