lxml analysiert XML basierend auf libxml2, aber BeautifulSoup analysiert XML basierend auf regulären Ausdrücken, sodass Sie fehlerhaftes XML wie das folgende analysieren können.
In Situationen, in denen Sie lxml aus Geschwindigkeitsgründen verwenden möchten, aber möglicherweise BeautifulSoup benötigen und sich fragen, welche Sie verwenden sollen, bietet lxml die folgende Benutzeroberfläche.
Angenommen, die Eingabe ist XML-fehlerhaft wie die folgende.
<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