
Parsing XML in Python: Una guida completa
XML (Extensible Markup Language) è un linguaggio popolare usato per memorizzare e trasferire dati. Python fornisce diverse librerie per l'analisi di XML. In questa guida vi presenteremo due librerie Python integrate per il parsing di XML: xml.dom.minidom e xml.etree.ElementTree.
Passo 1: Parsing di XML con xml.dom.minidom
La libreria xml.dom.minidom consente di analizzare i documenti XML con Python. Per analizzare una stringa XML, utilizzare il metodo parseString:
from xml.dom.minidom import parseString
xml_string = """
<library>
<book>
<title>The Great Gatsby</title>
<author>F. Scott Fitzgerald</author>
<year>1925</year>
</book>
</library>
"""
document = parseString(xml_string)
print(document.getElementsByTagName("title")[0].firstChild.nodeValue)
Nel codice qui sopra, analizziamo la stringa XML ed estraiamo il titolo del libro.
Passo 2: Parsing di XML con xml.etree.ElementTree
La libreria xml.etree.ElementTree (ET) fornisce un modo più pitonico per analizzare l'XML. Per analizzare una stringa XML, utilizzare il metodo fromstring:
import xml.etree.ElementTree as ET
xml_string = """
<library>
<book>
<title>The Great Gatsby</title>
<author>F. Scott Fitzgerald</author>
<year>1925</year>
</book>
</library>
"""
root = ET.fromstring(xml_string)
for child in root.iter():
if child.text.strip():
print(child.text)
Nel codice qui sopra, si analizza la stringa XML e si stampa il testo di ciascun elemento.
Passo 3: analizzare i file XML
Sia minidom che ElementTree possono analizzare l'XML da file utilizzando il metodo parse:
# Using minidom
from xml.dom.minidom import parse
document = parse("sample.xml")
print(document.getElementsByTagName("title")[0].firstChild.nodeValue)
# Using ElementTree
import xml.etree.ElementTree as ET
root = ET.parse("sample.xml")
for child in root.iter():
if child.text.strip():
print(child.text)
Il codice qui sopra mostra come analizzare un file XML e stampare alcuni elementi.
Passo 4: Salvataggio dei dati XML in un file CSV
Dopo aver analizzato l'XML, è possibile salvare i dati in un file CSV utilizzando la libreria pandas:
import pandas as pd
parsed_dict = {
"title": ["The Great Gatsby"],
"author": ["F. Scott Fitzgerald"],
"year": [1925]
}
df = pd.DataFrame(parsed_dict)
df.to_csv("parsed_xml_data.csv", index=False)
Passo 5: Gestione di XML non valido
La libreria Beautiful Soup può analizzare documenti XML che possono presentare errori:
from bs4 import BeautifulSoup
invalid_xml = """
<root>
<person>
<name>John Doe</name>
<message>This is a message & an invalid XML example.</message>
</person>
</root>
"""
soup = BeautifulSoup(invalid_xml, features="lxml-xml")
print(soup.prettify())
Beautiful Soup è in grado di gestire XML non valido, ma è più lenta di altre librerie di parsing XML.
Commenti (0)
Non ci sono ancora commenti qui, puoi essere il primo!