python: удалить данный тег xml - PullRequest
       28

python: удалить данный тег xml

0 голосов
/ 23 февраля 2020

Доброе утро, я попытался удалить заголовок тега, но мне это не удалось. Мой код ниже, он не генерирует ошибку, но не удаляет тег заголовка. Заранее спасибо,

<xml>
   <Heading>
     <tmp> a1</tmp>
     <tmp2> a2 </tmp2>
   </Heading>
   <data>
      <db> Id0123 </db>
      <db1>
         <x1> abc </x1>
         <x2> dze </x2>
     </db1>
     <db2>
         <x1> abc2 </x1>
     </db2>
   </data>
</xml>

Ожидаемый_выход

<xml>
   <data>
      <db> Id0123 </db>
      <db1>
           <x1> abc </x1>
           <x2> dze </x2>
      </db1>
      <db2>
           <x1> abc2 </x1>
      </db2>
   </data>
</xml>

код

xmlTree = parse("File.xml")
for xe in xmlTree.findall("xml"): 
    for elementx in xe.findall('Heading'): 
        xe.remove(elementx)                   

1 Ответ

0 голосов
/ 23 февраля 2020

В вашем примере xml найдите элементы, которые вы хотите удалить, и переберите их.

import xml.etree.ElementTree as ET
xmlTree = ET.fromstring(s)
with open('foo.xml') as f:
    xmlTree = ET.parse(f)
for el in xmlTree.getiterator('xml'):
    for thing in el.getiterator('Heading'):
        print(thing.tag,thing.attrib)
        el.remove(thing)
...