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)]