python xhtml beautifulsoup bs4 xml-declaration

python - Cómo elimino una declaración XML con BeautifulSoup4



xhtml bs4 (1)

Puede usar el siguiente enfoque:

import bs4 from bs4 import BeautifulSoup soup = BeautifulSoup(html, ''html.parser'') for e in soup: if isinstance(e, bs4.element.ProcessingInstruction): e.extract() break

Tengo un archivo XHTML que está estructurado así:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html> <html lang="en"> <head> ... </head> <body> ... </body> <html>

Estoy usando BeautifulSoup y quiero eliminar la declaración XML del documento, así que lo que tengo es así:

<!DOCTYPE html> <html lang="en"> <head> ... </head> <body> ... </body> <html>

No puedo encontrar la forma de acceder a la declaración XML para eliminarla. No parece ser un Doctype, Declaration, Tag o NavigableString por lo que puedo decir. ¿Hay alguna manera de que pueda encontrar esto para extraerlo?

Como ejemplo de trabajo, puedo eliminar el Doctype con un código como este (suponiendo que el texto del documento es la variable "html"):

soup = BeautifulSoup(html) [item.extract() for item in soup.contents if isinstance(item, Doctype)]