Read File XML Menggunakan Python

 


Berikut adalah cara membaca file XML menggunakan Phyton

1. Buat file XML : data.xml

<?xml version="1.0" encoding="UTF-8" ?>
<mahasiswa>
    <nama>Amir</nama>
    <alamat>Jakarta</alamat>
    <jurusan>Teknik Industri</jurusan>

    <hobi name="Blogging"/>
    <hobi name="Membaca Buku"/>
    <hobi name="Nonton Anime"/>
</mahasiswa>


2. Buat file pyhton : baca.py

Contoh 1 : 

import xml.dom.minidom as minidom

def main():
    # gunakan fungsi parse() untuk me-load xml ke memori 
    # dan melakukan parsing
    doc = minidom.parse("mahasiswa.xml")

    # Cetak isi doc dan tag pertamanya
    print doc.nodeName
    print doc.firstChild.tagName

    nama = doc.getElementsByTagName("nama")[0].firstChild.data
    alamat = doc.getElementsByTagName("alamat")[0].firstChild.data
    jurusan = doc.getElementsByTagName("jurusan")[0].firstChild.data
    list_hobi = doc.getElementsByTagName("hobi")

    print "Nama: {}\nAlamat: {}\nJurusan: {}\n".format(nama, alamat, jurusan)

    print "Memiliki {} hobi:".format(len(list_hobi))

    for hobi in list_hobi:
        print "-", hobi.getAttribute("name")


if __name__ == "__main__":
    main()


Jalankan :

#document
mahasiswa
Nama: Amir
Alamat: Jakarta
Jurusan: Teknik Industri

Memiliki 3 hobi:
- Blogging
- Membaca Buku
- Nonton Anime


Contoh 2 : Membaca node xml

import xml.dom.minidom as minidom

def main():
    # gunakan fungsi parse() untuk me-load xml ke memori 
    # dan melakukan parsing
    doc = minidom.parse("mahasiswa.xml")

    # Cetak isi doc dan tag pertamanya
    print doc.nodeName
    print doc.firstChild.tagName

    nama = doc.getElementsByTagName("nama")[0].firstChild.data
    alamat = doc.getElementsByTagName("alamat")[0].firstChild.data
    jurusan = doc.getElementsByTagName("jurusan")[0].firstChild.data
    

    print "Nama: {}\nAlamat: {}\nJurusan: {}\n".format(nama, alamat, jurusan)

    # Mendambahkan Elemen
    hobi_baru = doc.createElement("hobi")
    hobi_baru.setAttribute("name", "Programming")
    doc.firstChild.appendChild(hobi_baru)

    # Ambil kembali daftar hobi
    list_hobi = doc.getElementsByTagName("hobi")

    print "Memiliki {} hobi:".format(len(list_hobi))

    for hobi in list_hobi:
        print "-", hobi.getAttribute("name")


if __name__ == "__main__":
    main()



Output :

#document
mahasiswa
Nama: Amir
Alamat: Jakarta
Jurusan: Teknik Industri

Memiliki 3 hobi:
- Blogging
- Membaca Buku
- Nonton Anime



3. Read Write

import xml.dom.minidom as minidom

def main():
    # gunakan fungsi parse() untuk me-load xml ke memori 
    # dan melakukan parsing
    doc = minidom.parse("mahasiswa.xml")

    # Cetak isi doc dan tag pertamanya
    print doc.nodeName
    print doc.firstChild.tagName

    nama = doc.getElementsByTagName("nama")[0].firstChild.data
    alamat = doc.getElementsByTagName("alamat")[0].firstChild.data
    jurusan = doc.getElementsByTagName("jurusan")[0].firstChild.data
    

    print "Nama: {}\nAlamat: {}\nJurusan: {}\n".format(nama, alamat, jurusan)

    hobi_baru = doc.createElement("hobi")
    hobi_baru.setAttribute("name", "Programming")
    doc.firstChild.appendChild(hobi_baru)

    list_hobi = doc.getElementsByTagName("hobi")

    print "Memiliki {} hobi:".format(len(list_hobi))

    for hobi in list_hobi:
        print "-", hobi.getAttribute("name")

    file_xml = open("mahasiswa.xml","w")
    doc.writexml(file_xml)
    file_xml.close()


if __name__ == "__main__":
    main()


Output :