Tutorial Python XML Parser:Baca contoh file xml (Minidom, ElementTree)
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 dapat menggunakan kelas minidom XML dengan Python untuk memuat dan mengurai file XML.
Dalam tutorial ini, kita akan belajar-
Cara Parsing XML menggunakan minidom
Cara Membuat Node XML
Cara Mengurai XML menggunakan ElementTree
Cara Parsing XML menggunakan minidom
Kami telah membuat contoh file XML yang akan kami urai.
Langkah 1) Di dalam file, kita dapat melihat nama depan, nama belakang, rumah dan bidang keahlian (SQL, Python, Pengujian dan Bisnis)
Langkah 2) Setelah kami menguraikan dokumen, kami akan mencetak “nama simpul” dari akar dokumen dan “nama tag anak pertama” . Tagname dan nodename adalah properti standar dari file XML.
Impor modul xml.dom.minidom dan deklarasikan file yang harus diurai (myxml.xml)
File ini berisi beberapa informasi dasar tentang karyawan seperti nama depan, nama belakang, rumah, keahlian, dll.
Kami menggunakan fungsi parse pada XML minidom 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 nodename (#document) dari file XML dan nama tag anak pertama (karyawan) dari file XML
Catatan :
Nodename dan child tagname adalah nama standar atau properti dari dom XML. Jika Anda tidak terbiasa dengan jenis konvensi penamaan ini.
Langkah 3) Kami juga dapat memanggil daftar tag XML dari dokumen XML dan dicetak. Di sini kami mencetak serangkaian keterampilan seperti SQL, Python, Pengujian, dan Bisnis.
Deklarasikan keahlian variabel, dari mana 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 keahlian
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 “elemen doc.create”
Kode ini akan membuat tag keterampilan 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 Pengurai XML
Contoh Python 2
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")
# create 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();
Contoh Python 3
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"))
# create 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 data sampel:
kita harus mengimpor modul xml.etree.ElementTree terlebih dahulu.
import xml.etree.ElementTree as ET
Sekarang mari kita ambil elemen root:
root = tree.getroot()
Berikut 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
Ringkasan:
Python memungkinkan Anda untuk 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