[PYTHON] Analysieren Sie defektes XML mit lxml

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>

Ergebnis

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

Referenz

http://lxml.de/elementsoup.html

Recommended Posts

Analysieren Sie defektes XML mit lxml
Analysieren Sie XML in Python
json parsing mit gdb
Generieren Sie XML (RSS) mit Python
Verarbeiten Sie Feedly-XML mit Python.
Analysieren Sie pcap-Daten mit dem Befehl tshark
Verarbeiten Sie Pubmed .xml-Daten mit Python