Parsing XML Python: Panduan Komprehensif
XML (Extensible Markup Language) adalah bahasa populer yang digunakan untuk menyimpan dan mentransfer data. Python menyediakan beberapa perpustakaan untuk mengurai XML. Dalam panduan ini, kami akan memperkenalkan Anda pada dua pustaka Python bawaan untuk mengurai XML: xml.dom.minidom dan xml.etree.ElementTree.
Langkah 1: Parsing XML Menggunakan xml.dom.minidom
Pustaka xml.dom.minidom memungkinkan Anda mengurai dokumen XML dengan Python. Untuk mengurai string XML, gunakan metode 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)
Pada kode di atas, kita mengurai string XML dan mengekstrak judul buku.
Langkah 2: Parsing XML Menggunakan xml.etree.ElementTree
Pustaka xml.etree.ElementTree (ET) menyediakan cara yang lebih Pythonic untuk mengurai XML. Untuk mengurai string XML, gunakan metode 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)
Pada kode di atas, kita mengurai string XML dan mencetak teks setiap elemen.
Langkah 3: Mengurai File XML
Minidom dan ElementTree dapat mengurai XML dari file menggunakan metode 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)
Kode di atas menunjukkan cara mengurai file XML dan mencetak beberapa elemen.
Langkah 4: Menyimpan Data XML ke File CSV
Setelah menguraikan XML, Anda dapat menyimpan data ke file CSV menggunakan perpustakaan 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)
Langkah 5: Menangani XML yang Tidak Valid
Pustaka Beautiful Soup dapat mengurai dokumen XML yang mungkin mengalami kesalahan:
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 dapat menangani XML yang tidak valid, tetapi lebih lambat dibandingkan pustaka parsing XML lainnya.
Komentar (0)
Belum ada komentar di sini, Anda bisa menjadi yang pertama!