lxml analyse le XML basé sur libxml2, mais BeautifulSoup analyse le XML basé sur des expressions régulières, de sorte que vous pouvez analyser le XML cassé comme celui ci-dessous.
Lxml fournit l'interface suivante pour les situations où vous souhaitez utiliser lxml pour la vitesse, mais vous pouvez avoir besoin de BeautifulSoup, et vous vous demandez lequel utiliser.
Supposons que l'entrée soit du XML cassé comme celui ci-dessous.
<piyo>bar</piyo>
<piyo>hoge</piyo>
python
In [1]: from lxml import etree
In [2]: with open('hoge') as f:
...: xml=etree.fromstring(f.read())
...: File "<string>", line unknown XMLSyntaxError: Extra content at the end of the document, line 2, column 1
python
In [3]: from lxml.html.soupparser import fromstring
In [4]: with open('hoge') as f:
...: xml=fromstring(f.read())
...:
In [5]: for piyo in xml.findall('piyo'): print piyo.text.strip()
bar
hoge
http://lxml.de/elementsoup.html