Python - Pengolahan XML

Halo semua, pemrogram aspiran! Hari ini, kita akan memasuki dunia yang menarik tentang pengolahan XML dengan Python. Sebagai guru ilmu komputer yang ramah di lingkungan Anda, saya sangat senang untuk mengajarkan Anda dalam perjalanan ini. Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai!

Python - XML Processing

Apa itu XML?

Sebelum kita melompat ke bagian pemrograman, mari kita mengerti apa itu XML sebenarnya. XML merupakan singkatan dari eXtensible Markup Language. Itu seperti sepupu dari HTML, tetapi dengan tujuan yang berbeda. Sementara HTML digunakan untuk menampilkan data, XML digunakan untuk menyimpan dan mengirim data.

Bayangkan XML sebagai cara untuk mengorganisir informasi dalam struktur pohon. Itu menggunakan tag (seperti <tag>) untuk mendefinisikan elemen, mirip seperti Anda mungkin mengorganisir file di dalam folder di komputer Anda.

Berikut adalah contoh sederhana dari XML:

<bookstore>
<book>
<title>Harry Potter</title>
<author>J.K. Rowling</author>
<year>1997</year>
</book>
</bookstore>

Dalam contoh ini, kita memiliki sebuah bookstore yang berisi informasi tentang sebuah buku. Buku memiliki judul, penulis, dan tahun terbit. Mudah bukan?

Arsitektur dan API Parser XML

Sekarang bahwa kita tahu apa itu XML, mari kita berbicara tentang bagaimana kita dapat bekerja dengan itu di Python. Python menyediakan beberapa cara untuk mengurai (membaca dan menginterpretasikan) data XML. Tiga pendekatan utama adalah:

  1. SAX (Simple API for XML)
  2. DOM (Document Object Model)
  3. ElementTree

Masing-masing dari ini memiliki kekuatan dan kasus penggunaan mereka sendiri. Mari kita eksplorasi satu per satu!

Mengurai XML dengan API SAX

SAX, atau Simple API for XML, adalah sebuah parser yang berbasis peristiwa. Itu membaca file XML secara berurutan dan memicu peristiwa ketika menghadapai elemen, atribut, atau teks.

Berikut adalah contoh sederhana menggunakan SAX di Python:

import xml.sax

class BookHandler(xml.sax.ContentHandler):
def startElement(self, name, attrs):
self.current = name
def characters(self, content):
if self.current == "title":
print(f"Judul buku: {content}")

handler = BookHandler()
parser = xml.sax.make_parser()
parser.setContentHandler(handler)
parser.parse("books.xml")

Dalam contoh ini, kita membuat sebuah kelas BookHandler yang mendefinisikan apa yang harus dilakukan ketika parser menghadapai bagian berbeda dari XML. Ketika menemukan elemen "title", itu mencetak judul.

Mengurai XML dengan API DOM

DOM, atau Document Object Model, memuat seluruh dokumen XML ke dalam memori dan merepresentasikannya sebagai struktur pohon. Hal ini memungkinkan Anda untuk menavigasi dan mengubah dokumen dengan mudah.

Berikut adalah bagaimana Anda mungkin menggunakan DOM di Python:

import xml.dom.minidom

doc = xml.dom.minidom.parse("books.xml")
titles = doc.getElementsByTagName("title")
for title in titles:
print(f"Judul buku: {title.firstChild.data}")

Kode ini mengurai file XML, mencari semua elemen "title", dan mencetak isi mereka.

API XML ElementTree

ElementTree adalah cara yang lebih ringan dan lebih Pythonic untuk bekerja dengan XML. Hal ini sering menjadi pilihan yang disukai oleh banyak pengembang Python karena kesederhanaannya dan efisiensinya.

Berikut adalah contoh menggunakan ElementTree:

import xml.etree.ElementTree as ET

tree = ET.parse("books.xml")
root = tree.getroot()

for book in root.findall("book"):
title = book.find("title").text
print(f"Judul buku: {title}")

Kode ini melakukan hal yang sama seperti contoh sebelumnya, tetapi dalam cara yang lebih langsung.

Membuat File XML

Sekarang, mari kita coba membuat file XML dari awal menggunakan ElementTree:

import xml.etree.ElementTree as ET

root = ET.Element("bookstore")
book = ET.SubElement(root, "book")
ET.SubElement(book, "title").text = "The Hitchhiker's Guide to the Galaxy"
ET.SubElement(book, "author").text = "Douglas Adams"
ET.SubElement(book, "year").text = "1979"

tree = ET.ElementTree(root)
tree.write("new_books.xml")

Skrip ini membuat file XML baru dengan entri buku. Itu seperti menjadi seorang penulis, tapi sebagai ganti dari menulis sebuah buku, Anda menulis XML!

Mengurai File XML

Kita sudah melihat contoh mengurai file XML, tapi mari kita lihat contoh yang lebih komprehensif menggunakan ElementTree:

import xml.etree.ElementTree as ET

tree = ET.parse("books.xml")
root = tree.getroot()

for book in root.findall("book"):
title = book.find("title").text
author = book.find("author").text
year = book.find("year").text
print(f"'{title}' oleh {author}, diterbitkan pada {year}")

Skrip ini membaca file XML kita dan mencetak informasi tentang setiap buku yang telah diformat.

Mengubah File XML

Akhirnya, mari kita ubah file XML yang sudah ada:

import xml.etree.ElementTree as ET

tree = ET.parse("books.xml")
root = tree.getroot()

for book in root.findall("book"):
year = int(book.find("year").text)
if year < 2000:
book.find("year").text = str(year + 100)

tree.write("modified_books.xml")

Skrip ini menambahkan 100 tahun ke tanggal terbit buku apapun yang diterbitkan sebelum 2000. Itu seperti kita mengirimkan buku-buku ini ke masa depan!

Berikut adalah tabel yang ringkumkan metode utama yang telah kita gunakan:

Metode Deskripsi
ET.parse() Mengurai file XML
ET.Element() Membuat elemen baru
ET.SubElement() Membuat anak elemen baru
element.findall() Menemukan semua subelemen yang cocok
element.find() Menemukan subelemen pertama yang cocok
element.text Mendapatkan atau mengatur teks dari elemen
tree.write() Menulis pohon XML ke file

Dan itu adalah! Kita telah menyinggung dasar-dasar pengolahan XML di Python. Ingat, praktek membuat perfect, jadi jangan takut untuk bereksperimen dengan contoh ini. XML mungkin terlihat sedikit menakutkan pada awalnya, tetapi sekali Anda mengerti, Anda akan menemukan bahwa itu adalah alat yang kuat untuk bekerja dengan data terstruktur.

Selamat coding, pemimpin XML masa depan! ??

Credits: Image by storyset