Я пытаюсь удалить все строки из файла XML, которые имеют один из этих двух форм:Как удалить определенные атрибуты из ElementTree
<attr key="filename"><string>[SOME_FILENAME]</string></attr>
<attr key="line_number"><integer>[SOME_NUMBER]</integer></attr>
Прямо сейчас мой код выглядит следующим образом:
for parent in tree.iter():
for child in parent:
if 'key' in child.attrib:
if child.attrib['key'] == 'phc.filename':
del child.attrib['key']
elif child.attrib['key'] == 'phc.line_number':
del child.attrib['key']
Но выход не то, что я хочу, это изменение этого:
<attr key="filename"><string>[SOME_FILENAME]</string></attr>
<attr key="line_number"><integer>[SOME_NUMBER]</integer></attr>
в этом
<attr><string>[SOME_FILENAME]</string></attr>
<attr><integer>[SOME_NUMBER]</integer></attr>
Когда я предпочел бы, чтобы обе эти линии вообще исчезли.
Я также попытался заменить "del child.attrib ['key']" строки с parent.remove (child), но это не работает так, как я пробовал это.