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 :