Što je XML?
XML je skraćenica od proširivog označnog jezika. Dizajniran je za pohranu i transport malih do srednjih količina podataka i široko se koristi za razmjenu strukturiranih informacija.
Python vam omogućuje raščlanjivanje i izmjenu XML dokumenta. Da biste raščlanili XML dokument, morate imati cijeli XML dokument u memoriji. U ovom uputstvu vidjet ćemo kako možemo koristiti XML klasu minidoma u Pythonu za učitavanje i raščlanjivanje XML datoteke.
U ovom uputstvu naučit ćemo-
- Kako raščlaniti XML pomoću minidoma
- Kako stvoriti XML čvor
- Kako raščlaniti XML pomoću ElementTree
Kako raščlaniti XML pomoću minidoma
Stvorili smo uzorak XML datoteke koju ćemo raščlaniti.
Korak 1) Unutar datoteke možemo vidjeti ime, prezime, dom i područje stručnosti (SQL, Python, testiranje i poslovanje)
Korak 2) Nakon što analiziramo dokument, ispisat ćemo "naziv čvora" korijena dokumenta i " firstchild tagname" . Ime oznake i ime čvora standardna su svojstva XML datoteke.
- Uvezite xml.dom.minidom modul i prijavite datoteku koja se mora raščlaniti (myxml.xml)
- Ova datoteka sadrži neke osnovne informacije o zaposleniku poput imena, prezimena, kuće, stručnosti itd.
- Za učitavanje i raščlanjivanje XML datoteke koristimo funkciju raščlanjivanja na XML minidomu
- Imamo varijablu doc i doc dobiva rezultat funkcije raščlanjivanja
- Želimo ispisati ime čvora i podređeno ime datoteke iz datoteke, pa ga deklariramo u funkciji ispisa
- Pokrenite kod - Ispisuje ime čvora (#document) iz XML datoteke i prvo podređeno ime oznake (zaposlenika) iz XML datoteke
Napomena :
Nodename i child tagname su standardna imena ili svojstva XML domene. U slučaju da niste upoznati s ovom vrstom imenovanja.
Korak 3) Također možemo nazvati popis XML oznaka iz XML dokumenta i ispisati. Ovdje smo isprintali skup vještina poput SQL-a, Pythona, testiranja i poslovanja.
- Izjavite varijabilnu stručnost iz koje ćemo izdvojiti svu stručnost koju ima zaposlenik
- Koristite standardnu funkciju dom nazvanu "getElementsByTagName"
- Ovo će dobiti sve elemente imenovane vještina
- Izjavite petlju preko svake od oznaka vještina
- Pokrenite kod - To će dati popis četiri vještine
Kako stvoriti XML čvor
Možemo stvoriti novi atribut pomoću funkcije "createElement", a zatim dodati novi atribut ili oznaku postojećim XML oznakama. U našu XML datoteku dodali smo novu oznaku "BigData".
- Morate kodirati da biste dodali novi atribut (BigData) postojećoj XML oznaci
- Zatim morate isprintati XML oznaku s novim atributima pridruženim postojećoj XML oznaci
- Da bismo dodali novi XML i dodali ga u dokument, koristimo kod "doc.create elements"
- Ovaj će kôd stvoriti novu oznaku vještine za naš novi atribut "Big-data"
- Dodajte ovu oznaku vještine u dokument prvo dijete (zaposlenik)
- Pokrenite kod - nova oznaka "veliki podaci" pojavit će se s drugim popisom stručnosti
Primjer XML parsera
Primjer Pythona 2
uvoz xml.dom.minidomdef glavni ():# koristite funkciju parse () za učitavanje i raščlanjivanje XML datotekedoc = xml.dom.minidom.parse ("Myxml.xml");# ispišite čvor dokumenta i ime prve podređene oznakeispis doc.nodeNameispis doc.firstChild.tagName# nabavite popis XML oznaka iz dokumenta i ispišite svakuexpert = doc.getElementsByTagName ("stručnost")ispis "% d stručnost:"% stručnost.duljinaza vještinu u stručnosti:ispis vještine.getAttribute ("ime")# stvorite novu XML oznaku i dodajte je u dokumentnewexpertise = doc.createElement ("stručnost")newexpertise.setAttribute ("ime", "BigData")doc.firstChild.appendChild (nova ekspertiza)ispis ""expert = doc.getElementsByTagName ("stručnost")ispis "% d stručnost:"% stručnost.duljinaza vještinu u stručnosti:ispis vještine.getAttribute ("ime")ako je ime == "__main__":glavni();
Primjer Pythona 3
uvoz xml.dom.minidomdef glavni ():# koristite funkciju parse () za učitavanje i raščlanjivanje XML datotekedoc = xml.dom.minidom.parse ("Myxml.xml");# ispišite čvor dokumenta i ime prve podređene oznakeispis (doc.nodeName)ispis (doc.firstChild.tagName)# nabavite popis XML oznaka iz dokumenta i ispišite svakuexpert = doc.getElementsByTagName ("stručnost")ispis ("% d stručnost:"% stručnost.duljina)za vještinu u stručnosti:ispis (skill.getAttribute ("ime"))# stvorite novu XML oznaku i dodajte je u dokumentnewexpertise = doc.createElement ("stručnost")newexpertise.setAttribute ("ime", "BigData")doc.firstChild.appendChild (nova ekspertiza)ispis ("")expert = doc.getElementsByTagName ("stručnost")ispis ("% d stručnost:"% stručnost.duljina)za vještinu u stručnosti:ispis (skill.getAttribute ("ime"))ako je __ime__ == "__glavno__":glavni();
Kako raščlaniti XML pomoću ElementTree
ElementTree je API za manipulaciju XML-om. ElementTree je jednostavan način za obradu XML datoteka.
Kao uzorak podataka koristimo sljedeći XML dokument:
- SQL
- Python
Čitanje XML-a pomoću ElementTree:
prvo moramo uvesti modul xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Sada dohvatimo korijenski element:
root = tree.getroot()
Slijedi cjeloviti kod za čitanje gornjih xml podataka
import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)izlaz:
Expertise Data:SQLPython
Sažetak:
Python vam omogućuje raščlanjivanje cijelog XML dokumenta odjednom, a ne samo jedan redak odjednom. Da biste raščlanili XML dokument, morate imati cijeli dokument u memoriji.
- Za raščlanjivanje XML dokumenta
- Uvezite xml.dom.minidom
- Upotrijebite funkciju "raščlanjivanje" za raščlanjivanje dokumenta (doc = xml.dom.minidom.parse (naziv datoteke);
- Pozovite popis XML oznaka iz XML dokumenta pomoću koda (= doc.getElementsByTagName ("naziv xml oznaka")
- Stvaranje i dodavanje novog atributa u XML dokumentu
- Koristite funkciju "createElement"