Puis-je changer le comportement de BeautifulSoup en ce qui concerne la conversion des balises XML en minuscules?

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

  •  23-08-2019
  •  | 
  •  

Question

Je travaille sur le code pour analyser un fichier de configuration écrit en XML, où les balises XML sont cas mixtes et le cas est significatif. Beautiful Soup semble convertir les balises XML en minuscules par défaut, et je voudrais changer ce comportement.

Je ne suis pas le premier à poser une question sur ce sujet [voir ici ]. Cependant, je ne comprenais pas la réponse donnée à cette question et BeautifulSoup-3.1.0.1 BeautifulSoup.py ne semble pas contenir de cas de « encodedName » ou « Tag.__str__ »

Était-ce utile?

La solution 2

Selon Leonard Richardson, créateur | mainteneur de soupe Belle, vous peut » t .

Autres conseils

import html5lib
from html5lib import treebuilders

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

« document » est maintenant un arbre comme BeautifulSoup, mais conserve les cas de tags. Voir html5lib pour la documentation et l'installation.

Il est préférable d'utiliser lxml . Il est beaucoup, beaucoup plus rapide que BeautifulSoup. Il dispose d'une API de compatibilité pour BeautifulSoup aussi si vous ne voulez pas apprendre l'API lxml.

Ian Blicking accepte .

Il n'y a aucune raison d'utiliser BeautifulSoup plus, sauf si vous êtes sur Google App Engine ou quelque chose où tout pas purement Python n'est pas autorisé.

Il est plus adapté pour XML ainsi.

il suffit d'utiliser un analyseur XML propper au lieu d'un thats lib faits pour traiter les fichiers brisés

i sugest de prendre juste un oeil à xml.etree ou lxml

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top