Pemrosesan XML di Python: Panduan Lengkap dari Perpustakaan Standar hingga lxml

1. Pendahuluan

Python adalah bahasa pemrograman yang fleksibel dan dapat dengan mudah menangani berbagai format data. Di antaranya, XML (Extensible Markup Language) sering digunakan untuk pertukaran dan penyimpanan data terstruktur, serta banyak dipakai dalam respons API dan file konfigurasi. Di Python, Anda dapat dengan mudah bekerja dengan XML menggunakan pustaka standar atau pustaka pihak ketiga. Artikel ini menjelaskan secara jelas segala hal mulai dari operasi XML dasar hingga lanjutan menggunakan Python.

2. Pengenalan pustaka Python untuk menangani XML

2.1 Pustaka Standar: xml.etree.ElementTree

Pustaka standar Python xml.etree.ElementTree adalah alat yang nyaman yang memudahkan membaca dan menulis file XML, serta menjelajahi dan mengedit struktur pohon.

  • Parsing dasar : import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() print(root.tag) # Output: "data" Pada kode ini, file XML bernama data.xml dibaca, dan tag elemen root ditampilkan. Anda dapat memastikan bahwa hasil outputnya adalah "data" .
  • Penanganan error ketika file tidak ada :
    Jika file tidak ada, FileNotFoundError akan terjadi, sehingga Anda dapat menambahkan penanganan pengecualian seperti berikut:
    try: tree = ET.parse('data.xml') root = tree.getroot() except FileNotError: print("File not found.")

2.2 Pustaka Eksternal: lxmlUntuk operasi XML lanjutan, pustaka lxml direkomendasikan. lxml mendukung pemrosesan XML yang kuat dengan XPath dan XSLT, memudahkan melakukan tugas yang sulit dicapai dengan pustaka standar.

  • Mengambil elemen menggunakan XPath : from lxml import etree tree = etree.parse('data.xml') countries = tree.xpath('//country[@name="Liechtenstein"]') print(countries[0].tag) # Output: "country" Pada kode ini, elemen country dengan atribut name=”Liechtenstein” diambil.

年収訴求

3. Parsing dan Manipulasi XML

3.1 Langkah-Langkah Parsing Dasar

Untuk mem-parsing file XML dan bekerja dengan struktur pohonnya, gunakan xml.etree.ElementTree‘s parse(). Metode ini membaca file XML dan mengambil elemen root pohon.

  • Parsing dari file : import xml.etree.ElementTree as ET tree = ET.parse('example.xml') root = tree.getroot() print(root.tag) # Output: "rootTag" Pada kode ini, file XML example.xml dibaca dan nama tag elemen root ditampilkan.

3.2 Mencari Elemen dan Memanipulasi Atribut

Untuk mencari elemen XML, gunakan find() atau findall(). Ini memungkinkan Anda dengan mudah mengambil elemen atau atribut tertentu.

  • **Mencaricountry = root.find(‘country’) print(country.get(‘name’)) # Output: “Liechtenstein”`
  • Memanipulasi atribut :
    Untuk memanipulasi atribut elemen XML, ambil dengan get() dan atur dengan set() . country.set('currency', 'CHF') print(country.attrib) # Output: {'name': 'Liechtenstein', 'currency': 'CHF'}

4. Mengedit dan Menyimpan XML

4.1 Cara Mengedit Elemen

Anda dapat mengedit isi file XML dengan memodifikasi teks atau atribut elemen XML. Misalnya, untuk mengubah teks sebuah elemen, Anda dapat melakukan hal berikut:

  • Edit Teks Elemen : rank = root.find('.rank') rank.text = '2' print(rank.text) # Output: "2"

4.2 Menulis ke File XML

Untuk menyimpan XML yang telah dimodifikasi ke file, gunakan metode write().

  • Simpan XML : tree.write('updated_data.xml')

5. Pemrosesan Lanjutan dengan Pustaka Eksternal

5.1 Manipulasi XML Lanjutan Menggunakan lxml

lxml Menggunakan pustaka ini, Anda dapat melakukan pencarian kompleks dengan XPath dan mengonversi XML ke format lain menggunakan XSLT.

  • Mencari Elemen dengan XPath : from lxml import etree tree = etree.parse('data.xml') countries = tree.xpath('//country') for country in countries: print(country.get('name'))

5.2 Mengonversi XML dengan XSLT

Berikut contoh mengonversi XML ke HTML menggunakan XSLT.

  • Konversi XML ke HTML : from lxml import etree xml_tree = etree.parse('data.xml') xsl_tree = etree.parse('style.xsl') transform = etree.XSLT(xsl_tree) result_tree = transform(xml_tree) result_tree.write('output.html', pretty_print=True)

6. Praktik: Kode Contoh dan Penjelasan

6.1 Contoh Ekstraksi Data dari XML

Berikut adalah contoh kode yang mengekstrak data dari file XML dan menampilkan informasi tertentu.

  • Kode Contoh : import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() for country in root.findall('country'): name = country.get('name') rank = country.find('rank').text print(f"Country: {name}, Rank: {rank}")

6.2 Contoh Mengedit dan Menyimpan XML

Berikut adalah contoh kode yang mengedit nilai elemen XML dan menyimpan perubahan.

  • Kode Contoh : import xml.etree.ElementTree as ET tree = ET.parse('data.xml') root = tree.getroot() rank = root.find('.//rank') rank.text = '2' tree.write('updated_data.xml')

7. Ringkasan

Saat bekerja dengan XML di Python, menggunakan pustaka standar xml.etree.ElementTree memudahkan manipulasi XML dasar. Selain itu, menggunakan lxml memungkinkan operasi lanjutan seperti XPath dan XSLT. Lihat kode yang disajikan dalam artikel dan coba manipulasi XML sendiri.