¿Puedo cambiar el comportamiento de BeautifulSoup con respecto a la conversión de etiquetas XML en minúsculas?

StackOverflow https://stackoverflow.com/questions/891690

  •  23-08-2019
  •  | 
  •  

Pregunta

Estoy trabajando en código para analizar un archivo de configuración escrito en XML, donde las etiquetas XML son mayúsculas y minúsculas, y el caso es significativo. Hermosa sopa parece convertir las etiquetas XML a minúsculas de forma predeterminada, y me gustaría cambiar este comportamiento.

No soy el primero en hacer una pregunta sobre este tema [véase aquí ]. Sin embargo, yo no entendía la respuesta a esa pregunta y en BeautifulSoup-3.1.0.1 BeautifulSoup.py no parece contener cualquier caso de "encodedName" o "Tag.__str__"

¿Fue útil?

Solución 2

De acuerdo con Leonard Richardson, creador | mantenedor de sopa Hermosa, que puede' t .

Otros consejos

import html5lib
from html5lib import treebuilders

f = open("mydocument.html")
parser = html5lib.XMLParser(tree=treebuilders.getTreeBuilder("beautifulsoup"))
document = parser.parse(f)

'documento' es ahora un árbol BeautifulSoup similar, pero conserva los casos de las etiquetas. Ver html5lib para la documentación y la instalación.

Es mucho mejor usar lxml . Es mucho, mucho más rápido que BeautifulSoup. Tiene una API de compatibilidad para BeautifulSoup también si usted no quiere aprender la API lxml.

Ian Blicking está de acuerdo .

No hay razón para usar BeautifulSoup más, a menos que esté en Google App Engine o algo donde todo lo que no puramente no está permitido Python.

Es más adecuado para XML también.

sólo tiene que utilizar un analizador propper XML en lugar de eso es un lib realizados para hacer frente a archivos en mal estado

i sugest a sólo echar un vistazo a xml.etree o lxml

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top