BeautifulSoup elimina elementos que no sean el elemento requerido en un árbol XML.
Estoy usando beautifulsoup
para eliminar un elemento del documento xml
. Está eliminando la etiqueta requerida pero también está eliminando otra información del documento xml
que no está relacionada con ese elemento. ¿Cómo detener esto?
Código para reproducir:
import requests
from bs4 import BeautifulSoup
text_file = open('C:\Ashok\sample.xml', 'r')
s = text_file.read()
soup = BeautifulSoup(s, 'xml')
u = soup.find('Version', text='29.2.3')
fed = u.findParent()
fed.decompose()
f = open('C:\Ashok\sample.xml', "w")
f.write(str(soup))
f.close()
Encuentra la comparación adjunta. Se eliminó otra información que se muestra en los rectángulos rojos.
Está actualizando las etiquetas de encabezado y pie de página que no pedí que el código hiciera.
davy.ai
Para evitar eliminar otra información del documento XML, puedes intentar especificar la etiqueta o atributo exacto que deseas eliminar utilizando el método
extract()
en lugar dedecompose()
. Por ejemplo:En este caso, llamar al método
extract()
en el elementou
eliminará solo ese elemento específico del documento sin afectar a ningún otro elemento.