Python File XML – Cara Membaca, Menulis & Mengurai
Apa itu XML?
XML adalah singkatan dari eXtensible Markup Language. Ini dirancang untuk menyimpan dan mengangkut data dalam jumlah kecil hingga menengah dan banyak digunakan untuk berbagi informasi terstruktur.
Python memungkinkan Anda mengurai dan memodifikasi dokumen XML. Untuk mengurai dokumen XML, Anda harus memiliki seluruh dokumen XML di memori. Dalam tutorial ini, kita akan melihat bagaimana kita dapat menggunakan kelas minidom XML Python untuk memuat dan mengurai file XML.
Cara Parsing XML menggunakan minidom
Kami telah membuat contoh file XML yang akan kami parsing.
Langkah 1) Buat Contoh file XML
Di dalam file tersebut kita dapat melihat nama depan, nama belakang, rumah, dan bidang keahlian (SQL, Python, Pengujian dan Bisnis)
Langkah 2) Gunakan fungsi parse untuk memuat dan mengurai file XML
Setelah kami menguraikan dokumen, kami akan mencetaknya "nama simpul" dari akar dokumen dan “nama tag anak pertama”. Tagname dan nodename adalah properti standar file XML.
- Impor modul xml.dom.minidom dan deklarasikan file yang harus diurai (myxml.xml)
- File ini membawa beberapa informasi dasar tentang seorang karyawan seperti nama depan, nama belakang, rumah, keahlian, dll.
- Kami menggunakan fungsi parse pada minidom XML untuk memuat dan mengurai file XML
- Kami memiliki variabel doc dan doc mendapatkan hasil dari fungsi parse
- Kami ingin mencetak nama simpul dan nama tag anak dari file tersebut, jadi kami mendeklarasikannya dalam fungsi cetak
- Jalankan kode- Ini mencetak nama simpul (#dokumen) dari file XML dan nama tag anak pertama (karyawan) dari file XML
Note:
Nodename dan tagname anak adalah nama standar atau properti dom XML.
Langkah 3) Panggil daftar tag XML dari dokumen XML dan cetak
Selanjutnya, Kita juga dapat memanggil daftar tag XML dari dokumen XML dan mencetaknya. Di sini kami mencetak serangkaian keterampilan seperti SQL, Python, pengujian dan Bisnis.
- Deklarasikan keahlian variabel, dari situ kita akan mengekstrak semua nama keahlian yang dimiliki karyawan
- Gunakan fungsi standar dom yang disebut “getElementsByTagName”
- Ini akan mendapatkan semua elemen bernama skill
- Deklarasikan perulangan pada masing-masing tag keterampilan
- Jalankan kodenya- Ini akan memberikan daftar empat keterampilan
Cara Menulis Node XML
Kita dapat membuat atribut baru dengan menggunakan fungsi “createElement” dan kemudian menambahkan atribut atau tag baru ini ke tag XML yang ada. Kami menambahkan tag baru "BigData" di file XML kami.
- Anda harus membuat kode untuk menambahkan atribut baru (BigData) ke tag XML yang ada
- Kemudian, Anda harus mencetak tag XML dengan atribut baru yang ditambahkan dengan tag XML yang sudah ada
- Untuk menambahkan XML baru dan menambahkannya ke dokumen, kami menggunakan kode “doc.create elements”
- Kode ini akan membuat tag keterampilan baru untuk atribut baru kita “Data besar”
- Tambahkan tag keterampilan ini ke dalam dokumen anak pertama (karyawan)
- Jalankan kodenya- tag baru “big data” akan muncul dengan daftar keahlian lainnya
Contoh Parser XML
Python 2 Contoh
import xml.dom.minidom def main(): # use the parse() function to load and parse an XML file doc = xml.dom.minidom.parse("Myxml.xml"); # print out the document node and the name of the first child tag print doc.nodeName print doc.firstChild.tagName # get a list of XML tags from the document and print each one expertise = doc.getElementsByTagName("expertise") print "%d expertise:" % expertise.length for skill in expertise: print skill.getAttribute("name") #Write a new XML tag and add it into the document newexpertise = doc.createElement("expertise") newexpertise.setAttribute("name", "BigData") doc.firstChild.appendChild(newexpertise) print " " expertise = doc.getElementsByTagName("expertise") print "%d expertise:" % expertise.length for skill in expertise: print skill.getAttribute("name") if name == "__main__": main();
Python 3 Contoh
import xml.dom.minidom def main(): # use the parse() function to load and parse an XML file doc = xml.dom.minidom.parse("Myxml.xml"); # print out the document node and the name of the first child tag print (doc.nodeName) print (doc.firstChild.tagName) # get a list of XML tags from the document and print each one expertise = doc.getElementsByTagName("expertise") print ("%d expertise:" % expertise.length) for skill in expertise: print (skill.getAttribute("name")) # Write a new XML tag and add it into the document newexpertise = doc.createElement("expertise") newexpertise.setAttribute("name", "BigData") doc.firstChild.appendChild(newexpertise) print (" ") expertise = doc.getElementsByTagName("expertise") print ("%d expertise:" % expertise.length) for skill in expertise: print (skill.getAttribute("name")) if __name__ == "__main__": main();
Cara Mengurai XML menggunakan ElementTree
ElementTree adalah API untuk memanipulasi XML. ElementTree adalah cara mudah untuk memproses file XML.
Kami menggunakan dokumen XML berikut sebagai contoh data:
<data> <items> <item name="expertise1">SQL</item> <item name="expertise2">Python</item> </items> </data>
Membaca XML menggunakan ElementTree:
pertama-tama kita harus mengimpor modul xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Sekarang mari kita ambil elemen root:
root = tree.getroot()
Berikut ini adalah kode lengkap untuk membaca data xml di atas
import xml.etree.ElementTree as ET tree = ET.parse('items.xml') root = tree.getroot() # all items data print('Expertise Data:') for elem in root: for subelem in elem: print(subelem.text)
keluaran:
Expertise Data: SQL Python
Kesimpulan
Python memungkinkan Anda mengurai seluruh dokumen XML sekaligus dan bukan hanya satu baris dalam satu waktu. Untuk mengurai dokumen XML Anda harus memiliki seluruh dokumen di memori.
- Untuk mengurai dokumen XML
- Impor xml.dom.minidom
- Gunakan fungsi “parse” untuk mengurai dokumen ( doc=xml.dom.minidom.parse (nama file);
- Panggil daftar tag XML dari dokumen XML menggunakan kode (=doc.getElementsByTagName( “nama tag xml”)
- Untuk membuat dan menambahkan atribut baru dalam dokumen XML
- Gunakan fungsi "buatElemen"