Vodič za analizator Python XML: Pročitajte primjer xml datoteke (Minidom, ElementTree)

Sadržaj:

Anonim

Š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".

  1. Morate kodirati da biste dodali novi atribut (BigData) postojećoj XML oznaci
  2. 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:

SQLPython

Č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"