Kas yra XML?
XML reiškia eXtensible Markup Language. Jis buvo sukurtas saugoti ir transportuoti mažus ir vidutinius duomenų kiekius ir yra plačiai naudojamas dalijantis struktūrizuota informacija.
„Python“ suteikia galimybę analizuoti ir modifikuoti XML dokumentą. Norėdami išanalizuoti XML dokumentą, turite turėti visą XML dokumentą atmintyje. Šioje pamokoje pamatysime, kaip galime naudoti „XML minidom“ klasę „Python“, norėdami įkelti ir išanalizuoti XML failą.
Šioje pamokoje sužinosime
- Kaip išanalizuoti XML naudojant minidom
- Kaip sukurti XML mazgą
- Kaip išanalizuoti XML naudojant „ElementTree“
Kaip išanalizuoti XML naudojant minidom
Mes sukūrėme XML failo pavyzdį, kurį ketiname išanalizuoti.
1 žingsnis. Viduje esančiame faile galime pamatyti vardą, pavardę, namus ir kompetencijos sritį (SQL, Python, testavimas ir verslas)
2 žingsnis) Atidarę dokumentą, atspausdinsime dokumento šaknies „mazgo pavadinimą“ ir „ pirmagimio žymos pavadinimą“ . Žymos vardas ir mazgas yra standartinės XML failo ypatybės.
- Importuokite xml.dom.minidom modulį ir deklaruokite failą, kurį reikia išanalizuoti (myxml.xml)
- Šiame faile yra tam tikra pagrindinė informacija apie darbuotoją, pvz., Vardas, pavardė, namai, patirtis ir kt.
- XML failo įkėlimui ir analizavimui naudojame XML minidomo analizavimo funkciją
- Mes turime kintamąjį doc ir doc gauna analizės funkcijos rezultatą
- Mes norime atspausdinti mazgo vardą ir vaiko žymą iš failo, todėl deklaruojame jį spausdinimo funkcijoje
- Vykdykite kodą - jis išspausdina mazgą (#document) iš XML failo ir pirmąjį vaiko žymos vardą (darbuotoją) iš XML failo
Pastaba :
Vardas ir antrinis žymos vardas yra standartiniai XML domeno pavadinimai arba ypatybės. Tuo atveju, jei nesate susipažinę su tokio tipo pavadinimų suteikimo būdais.
3 žingsnis) Taip pat galime iškviesti XML žymų sąrašą iš XML dokumento ir atsispausdinti. Čia išspausdinome tokių įgūdžių rinkinį kaip SQL, Python, Testavimas ir Verslas.
- Paskelbkite kintamą ekspertizę, iš kurios išgausime visas darbuotojo žinias
- Naudokite standartinę „dom“ funkciją, vadinamą „getElementsByTagName“
- Tai suteiks visus elementus, vadinamus įgūdžiais
- Paskelbkite kilpą per kiekvieną įgūdžių žymą
- Paleiskite kodą - tai suteiks keturių įgūdžių sąrašą
Kaip sukurti XML mazgą
Naudodami funkciją „createElement“ galime sukurti naują atributą ir pridėti šį naują atributą ar žymą prie esamų XML žymų. Į savo XML failą įtraukėme naują žymą „BigData“.
- Norėdami pridėti naują atributą („BigData“) prie esamos XML žymos, turite koduoti
- Tada turite atsispausdinti XML žymą su naujais atributais, pridėtais prie esamos XML žymos
- Norėdami pridėti naują XML ir pridėti jį prie dokumento, mes naudojame kodą „doc.create elements“
- Šis kodas sukurs naują įgūdžių žymą naujam atributui „Big-data“
- Pridėkite šią įgūdžių žymą į dokumento pirmąjį vaiką (darbuotoją)
- Paleiskite kodą - pasirodys nauja žyma „dideli duomenys“ kartu su kitu ekspertų sąrašu
XML analizatoriaus pavyzdys
„Python 2“ pavyzdys
importuoti xml.dom.minidomdef pagrindinis ():# naudokite funkciją „parse“ (), norėdami įkelti ir išanalizuoti XML failądoc = xml.dom.minidom.parse („Myxml.xml“);# atsispausdinkite dokumento mazgą ir pirmosios antrinės žymos pavadinimąatspausdinti doc.nodeNameatspausdinti doc.firstChild.tagName# gauti iš dokumento XML žymų sąrašą ir atspausdinti kiekvienąekspertizė = doc.getElementsByTagName („patirtis“)spausdinti "% d patirtis:"% patirtis.lengthuž kompetencijos įgūdžius:spausdinimo įgūdis.getAttribute ("vardas")# sukurkite naują XML žymą ir pridėkite ją prie dokumentonewexpertise = doc.createElement („patirtis“)newexpertise.setAttribute („vardas“, „BigData“)doc.firstChild.appendChild (nauja patirtis)spausdinti ""ekspertizė = doc.getElementsByTagName („patirtis“)spausdinti "% d patirtis:"% patirtis.lengthuž kompetencijos įgūdžius:spausdinimo įgūdis.getAttribute ("vardas")jei vardas == "__main__":pagrindinis ();
„Python 3“ pavyzdys
importuoti xml.dom.minidomdef pagrindinis ():# naudokite funkciją „parse“ (), norėdami įkelti ir išanalizuoti XML failądoc = xml.dom.minidom.parse („Myxml.xml“);# atsispausdinkite dokumento mazgą ir pirmosios antrinės žymos pavadinimąspausdinti (doc.nodeName)spausdinti (doc.firstChild.tagName)# gauti iš dokumento XML žymų sąrašą ir atspausdinti kiekvienąekspertizė = doc.getElementsByTagName („patirtis“)spausdinti ("% d patirtis:"% patirtis.length)už kompetencijos įgūdžius:spausdinti (skill.getAttribute ("vardas"))# sukurkite naują XML žymą ir pridėkite ją prie dokumentonewexpertise = doc.createElement („patirtis“)newexpertise.setAttribute („vardas“, „BigData“)doc.firstChild.appendChild (nauja patirtis)spausdinti ("")ekspertizė = doc.getElementsByTagName („patirtis“)spausdinti ("% d patirtis:"% patirtis.length)už kompetencijos įgūdžius:spausdinti (skill.getAttribute ("vardas"))jei __pavadinimas == "__main__":pagrindinis ();
Kaip išanalizuoti XML naudojant „ElementTree“
„ElementTree“ yra API, skirta manipuliuoti XML. „ElementTree“ yra paprastas būdas apdoroti XML failus.
Kaip pavyzdinius duomenis naudojame šį XML dokumentą:
- SQL
- Python
XML skaitymas naudojant „ElementTree“:
pirmiausia turime importuoti modulį xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Dabar paimkime pagrindinį elementą:
root = tree.getroot()
Toliau pateikiamas visas kodas, skirtas skaityti aukščiau xml duomenis
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)išvestis:
Expertise Data:SQLPython
Santrauka:
„Python“ leidžia vienu metu analizuoti visą XML dokumentą, o ne tik vieną eilutę vienu metu. Norėdami išanalizuoti XML dokumentą, turite turėti visą dokumentą atmintyje.
- Analizuoti XML dokumentą
- Importuoti xml.dom.minidom
- Naudokite funkciją „parse“, kad išanalizuotumėte dokumentą (doc = xml.dom.minidom.parse (failo pavadinimas);
- Iškvieskite XML žymų sąrašą iš XML dokumento naudodami kodą (= doc.getElementsByTagName ("xml žymų pavadinimas")
- Norėdami sukurti ir pridėti naują atributą XML dokumente
- Naudokite funkciją „createElement“