Python File XML – Cara Membaca, Menulis & Mengurai

⚡ Ringkasan Cerdas

Python Pemrosesan XML memungkinkan Anda membaca, menulis, dan mengurai dokumen XML menggunakan modul minidom dan ElementTree bawaan. Kelas minidom memuat file ke dalam memori sebagai DOM, sementara ElementTree menawarkan cara yang lebih cepat dan lebih efisien. PythonAPI pohon ic.

  • 🔘 Apa itu XML? eXtensible Markup Language menyimpan dan mengirimkan data terstruktur berukuran kecil.
  • ☑️ penguraian minidom: Fungsi parse() memuat file XML ke dalam memori sebagai DOM.
  • Tag bacaan: getElementsByTagName() mengembalikan elemen yang cocok; getAttribute() membaca nilai-nilainya.
  • 🧪 Node penulisan: Fungsi createElement() dan appendChild() menambahkan tag baru ke dalam dokumen.
  • API ElementTree: ET.parse() membangun pohon; getroot() mengembalikan elemen akar.
  • 🤖 Siap untuk AI: XML yang telah diurai mengirimkan konfigurasi dan data API ke dalam pipeline pembelajaran mesin.

Python Berkas XML

Bagian-bagian di bawah ini membahas tentang penguraian, penulisan, dan pembacaan file XML. Python.

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 untuk mengurai dan memodifikasi dokumen XML. Untuk mengurai dokumen XML, Anda perlu memiliki seluruh dokumen XML di memori. Dalam tutorial ini, kita akan melihat bagaimana kita dapat menggunakan kelas XML minidom dalam 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 kita menguraikan dokumen, kita akan mencetak "nama node" dari akar dokumen dan "nama tag anak pertama". Nama tag dan nama node adalah properti standar dari 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
  • Kita memiliki variabel doc, dan doc mendapatkan hasil dari fungsi parse.
  • Kita ingin mencetak nama node dan nama tag anak dari file, jadi kita mendeklarasikannya dalam fungsi print.
  • Jalankan kode- Ini mencetak nama simpul (#dokumen) dari file XML dan nama tag anak pertama (karyawan) dari file XML

Note: Nodename dan child tagname adalah nama atau properti standar dari sebuah XML DOM.

Langkah 3) Panggil daftar tag XML dari dokumen XML dan cetaklah.

Selanjutnya, kita juga dapat memanggil daftar tag XML dari dokumen XML dan mencetaknya. Di sini kita mencetak kumpulan keterampilan seperti SQL, Python, pengujian dan Bisnis.

Parsing XML menggunakan minidom

  • Deklarasikan variabel keahlian, dari mana kita akan mengekstraktracsemua nama keahlian yang dimiliki karyawan
  • Gunakan fungsi standar dom yang disebut “getElementsByTagName”
  • Ini akan mendapatkan semua elemen bernama skill
  • Deklarasikan perulangan untuk setiap 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 menulis kode untuk menambahkan atribut baru (BigData) ke tag XML yang sudah ada.
  2. Kemudian, Anda harus mencetak tag XML dengan atribut baru yang ditambahkan ke tag XML yang sudah ada.

Tulis Node XML

  • Untuk menambahkan tag XML baru dan menambahkannya ke dokumen, kita menggunakan kode “doc.createElement”
  • Kode ini akan membuat tag keterampilan baru untuk atribut baru kita "BigData".
  • Tambahkan tag keterampilan ini ke dalam anak pertama dokumen (karyawan).
  • Jalankan kodenya - tag baru "BigData" akan muncul bersama 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 merupakan 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 akarnya:

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

Pertanyaan Umum Demo Slot

Gunakan minidom untuk file kecil yang membutuhkan navigasi DOM. Pilih ElementTree untuk sebagian besar pekerjaan — lebih cepat, lebih ringan, dan lebih direkomendasikan. Pythondefault ic.

Bungkus elemen akar dengan ElementTree dan panggil tree.write(“out.xml”, encoding=”utf-8″, xml_declaration=True). Untuk indentasi, gunakan ET.indent() pada Python 3.9+, atau pretty_print milik lxml.

lxml adalah pustaka pihak ketiga yang menggunakan API ElementTree tetapi didukung oleh kode C yang cepat. Pustaka ini menambahkan XPath, XSLT, dan validasi. Instal melalui pip install lxml.

Parser standar rentan terhadap serangan XXE dan serangan "billion-laughs". Instal defusedxml dan impor defusedxml.ElementTree — pengganti langsung yang menonaktifkan entitas eksternal berbahaya.

Ya. Gunakan minidom.parseString(text) atau ElementTree's ET.fromstring(text), yang mengembalikan elemen akar secara langsung. Keduanya mengurai XML dari sebuah variabel, sehingga respons tidak perlu disimpan terlebih dahulu.

Telusuri struktur pohon dengan ElementTree, membangun kamus dari setiap tag, atribut, dan teks elemen. Pustaka xmltodict mengotomatiskan konversi melalui xmltodict.parse().

XML menyimpan konfigurasi, anotasi, dan respons API yang menjadi masukan bagi model. Label gambar Pascal VOC dikirim dalam format XML; ElementTree misalnyatracIni adalah kotak pembatas mereka untuk pelatihan.

Ya. GitHub Copilot melengkapi pola minidom dan ElementTree secara otomatis seperti loop parse() dan findall(). Tetap verifikasi nama tag dan encoding, serta tambahkan defusedxml untuk input yang tidak tepercaya.

Ringkaslah postingan ini dengan: