Apa itu XML?
XML adalah singkatan dari eXtensible Markup Language. Ini dirancang untuk menyimpan dan mengangkut data dalam jumlah kecil hingga sedang dan digunakan secara luas untuk berbagi informasi terstruktur.
Python memungkinkan Anda untuk mengurai dan memodifikasi dokumen XML. Untuk mengurai dokumen XML Anda harus memiliki seluruh dokumen XML dalam memori. Dalam tutorial ini, kita akan melihat bagaimana kita bisa menggunakan kelas minidom XML dengan Python untuk memuat dan mengurai file XML.
Dalam tutorial ini, kita akan belajar-
- Cara Mengurai XML menggunakan minidom
- Cara Membuat Node XML
- Cara Mengurai XML menggunakan ElementTree
Cara Mengurai XML menggunakan minidom
Kami telah membuat file XML contoh yang akan kami parse.
Langkah 1) Di dalam file, kita dapat melihat nama depan, nama belakang, rumah dan bidang keahlian (SQL, Python, Pengujian dan Bisnis)
Langkah 2) Setelah kita mengurai dokumen, kita akan mencetak "nama node" dari root dokumen dan " nama anak pertama" . Tagname dan nodename adalah properti standar dari file XML.
- Impor modul xml.dom.minidom dan nyatakan file yang harus diurai (myxml.xml)
- File ini membawa beberapa informasi dasar tentang 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 nodename dan child tagname dari file tersebut, jadi kami mendeklarasikannya dalam fungsi print
- Jalankan kode- Ini mencetak nama noden (#document) dari file XML dan nama anak pertama (karyawan) dari file XML
Catatan :
Nodename dan child tagname adalah nama standar atau properti dari XML dom. Jika Anda tidak terbiasa dengan jenis konvensi penamaan ini.
Langkah 3) Kita juga dapat memanggil daftar tag XML dari dokumen XML dan dicetak. Di sini kami mencetak seperangkat keterampilan seperti SQL, Python, Pengujian, dan Bisnis.
- Nyatakan keahlian variabel, yang darinya kita akan mengekstrak semua nama keahlian yang dimiliki karyawan
- Gunakan fungsi standar dom yang disebut "getElementsByTagName"
- Ini akan mendapatkan semua elemen bernama skill
- Deklarasikan loop pada setiap tag skill
- Jalankan kode- Ini akan memberikan daftar empat keterampilan
Cara Membuat 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 ada
- Untuk menambahkan XML baru dan menambahkannya ke dokumen, kami menggunakan kode "doc.create elements"
- Kode ini akan membuat tag keahlian baru untuk atribut baru kami "Big-data"
- Tambahkan tag keterampilan ini ke dalam dokumen anak pertama (karyawan)
- Jalankan kode- tag baru "data besar" akan muncul dengan daftar keahlian lainnya
Contoh XML Parser
Contoh Python 2
impor xml.dom.minidomdef main ():# gunakan fungsi parse () untuk memuat dan mengurai file XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# mencetak node dokumen dan nama tag anak pertamacetak doc.nodeNamecetak doc.firstChild.tagName# dapatkan daftar tag XML dari dokumen dan cetak masing-masingkeahlian = doc.getElementsByTagName ("keahlian")cetak "% d keahlian:"% keahlian.lengthuntuk keahlian dalam keahlian:print skill.getAttribute ("name")# buat tag XML baru dan tambahkan ke dokumennewexpertise = doc.createElement ("keahlian")newexpertise.setAttribute ("nama", "BigData")doc.firstChild.appendChild (keahlian baru)cetak ""keahlian = doc.getElementsByTagName ("keahlian")cetak "% d keahlian:"% keahlian.lengthuntuk keahlian dalam keahlian:print skill.getAttribute ("name")jika nama == "__main__":utama();
Contoh Python 3
impor xml.dom.minidomdef main ():# gunakan fungsi parse () untuk memuat dan mengurai file XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# mencetak node dokumen dan nama tag anak pertamacetak (doc.nodeName)cetak (doc.firstChild.tagName)# dapatkan daftar tag XML dari dokumen dan cetak masing-masingkeahlian = doc.getElementsByTagName ("keahlian")cetak ("% d keahlian:"% keahlian.length)untuk keahlian dalam keahlian:cetak (skill.getAttribute ("name"))# buat tag XML baru dan tambahkan ke dokumennewexpertise = doc.createElement ("keahlian")newexpertise.setAttribute ("nama", "BigData")doc.firstChild.appendChild (keahlian baru)cetak ("")keahlian = doc.getElementsByTagName ("keahlian")cetak ("% d keahlian:"% keahlian.length)untuk keahlian dalam keahlian:cetak (skill.getAttribute ("name"))jika __name__ == "__main__":utama();
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 data sampel:
- SQL
- Python
Membaca XML menggunakan ElementTree:
pertama kita harus mengimpor modul xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Sekarang mari ambil elemen root:
root = tree.getroot()
Berikut kode lengkap untuk membaca data xml di atas
import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)keluaran:
Expertise Data:SQLPython
Ringkasan:
Python memungkinkan Anda untuk mengurai seluruh dokumen XML sekaligus dan tidak 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 "createElement"