2017-02-10 14 views
0

У меня есть файл XML, состоящий из другой части:Синтаксического Xml файл с ElementTree, никаких атрибутов не показан

<part> 
    <spec key="ID" value="aa" /> 
    <spec key="Family" value="bb" /> 
    <spec class="0" key="bb" type="desc" value="30" /> 
</part> 
<part> 
    <spec key="ID" value="bo" /> 
    <spec key="Family" value="bbc" /> 
    <spec class="1" key="bss" type="desc" value="30" /> 
</part> 

Если я использую tree.iter() для перебора я могу получить доступ к любым клавишам, значения, используя для пример:

tree = ET.parse(path)#path is the xml file. 
for node in tree.iter(): 
    if node.attrib.get('key')=='ID': 
     ID = node.attrib.get("value") 
     print(ID) 

я буду получать на выходе:

aa 
    bo 

, но я хочу, чтобы отделить итерацию частью и выше разбор выполняется по строкам. Я пробовал tree.iter ('part'), который отделяет итерацию по частям, но я не могу получить доступ к ключам, классу и значениям с теми же методами, что и раньше ... node.attrib пуст.

+0

Как мы можем воспроизвести проблему? Пожалуйста, предоставьте [mcve]. – mzjn

ответ

0
tree = ET.parse(path)#path is the xml file. 
    for node in tree.iter(): 
     for subnode in node.ter(): 
      if subnode.attrib.get('key')=='ID': 
       ID = node.attrib.get("value") 
       print(ID)