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)

Cara Parsing XML menggunakan minidom

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.

Parsing XML menggunakan minidom

  • 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.

Parsing XML menggunakan minidom

  • 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.

  1. Anda harus membuat kode untuk menambahkan atribut baru (BigData) ke tag XML yang ada
  2. Kemudian, Anda harus mencetak tag XML dengan atribut baru yang ditambahkan dengan tag XML yang sudah ada

Tulis Node XML

  • 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"