Как назначить родительские идентификаторы для детей в XML с несколькими уровнями - PullRequest
1 голос
/ 06 мая 2019

Привет, у меня есть ситуация, когда мне нужно проанализировать xml и найти все соответствующие дочерние элементы и установить родительский идентификатор на основе тега, под которым они попадают.

Пожалуйста, найдите xml

<response success="true">
   <output>
      <levels seqNo="5069">
         <level id="1" isLinked="0" hasChildren="true">
            <level id="1051" isLinked="0" hasChildren="true">
               <level id="951" isLinked="0" hasChildren="true">
                  <level id="1073" isLinked="0" hasChildren="true">
                     <level id="922" isElimination="0" isLinked="0" />
                     <level id="957" isLinked="0" />
                     <level id="1301" isLinked="0">
                        <level id="927" isLinked="0" />
                        <level id="939" isLinked="0" />
                     </level>
                     <level id="1302" isLinked="0" hasChildren="true">
                        <level id="925" isLinked="0" />
                     </level>
                  </level>
               </level>
            </level>
         </level>
      </levels>
   </output>
</response>

Я попробовал приведенный ниже код, который извлекает все дочерние элементы, но не уверен, как установить родительские идентификаторы

tree = et.parse(r"responseLevels.xml")
root = tree.getroot()
print(root)
for i in root.iter():
    for j in list(i):
        print(j.tag,j.attrib)

вывод Я ищу:

id  islinked    haschildren Parent
1   0            "true" 
1051    0          "true"   1
951 0             "true"    1051
1073    0          "true"   951
922 0                       1073
957 0                       1073
1301    0                       1073
927 0                       1301
939 0                       1301
1302    0           "true"  1073
925 0                       1302
...