Python XML parsētāja apmācība: lasiet xml faila piemēru (Minidom, ElementTree)

Satura rādītājs:

Anonim

Kas ir XML?

XML nozīmē eXtensible Markup Language. Tas bija paredzēts mazu un vidēju datu apjomu glabāšanai un transportēšanai, un to plaši izmanto strukturētas informācijas apmaiņai.

Python ļauj parsēt un modificēt XML dokumentu. Lai parsētu XML dokumentu, atmiņā jābūt visu XML dokumentu. Šajā apmācībā mēs redzēsim, kā mēs varam izmantot XML minidom klasi Python, lai ielādētu un parsētu XML failu.

Šajā apmācībā mēs iemācīsimies

  • Parsēt XML, izmantojot minidomu
  • Kā izveidot XML mezglu
  • Parsēt XML, izmantojot ElementTree

Parsēt XML, izmantojot minidomu

Mēs esam izveidojuši XML faila paraugu, kuru mēs analizēsim.

1. solis. Faila iekšpusē mēs varam redzēt vārdu, uzvārdu, māju un kompetences jomu (SQL, Python, Testing and Business)

2. solis. Pēc dokumenta parsēšanas mēs izdrukāsim dokumenta saknes "mezgla nosaukumu" un " firstchild tagname" . Taga nosaukums un mezgla nosaukums ir XML faila standarta rekvizīti.

  • Importējiet moduli xml.dom.minidom un paziņojiet parsējamo failu (myxml.xml)
  • Šis fails satur pamatinformāciju par darbinieku, piemēram, vārdu, uzvārdu, māju, zināšanas utt.
  • XML faila ielādēšanai un parsēšanai mēs izmantojam XML minidoma parsēšanas funkciju
  • Mums ir mainīgais doc, un doc iegūst parsēšanas funkcijas rezultātu
  • Mēs vēlamies no faila izdrukāt mezgla un bērna taga nosaukumu, tāpēc mēs to deklarējam drukas funkcijā
  • Palaist kodu - tas izdrukā mezgla nosaukumu (#document) no XML faila un pirmo pakārtoto tagu vārdu (darbinieks) no XML faila

Piezīme :

Vārds un pakārtotais nosaukums ir XML domēna standarta nosaukumi vai īpašības. Gadījumā, ja neesat pazīstams ar šāda veida nosaukšanas kārtību.

3. solis. Mēs varam arī izsaukt XML tagu sarakstu no XML dokumenta un izdrukāt. Šeit mēs izdrukājām tādu prasmju kopumu kā SQL, Python, Testēšana un Bizness.

  • Paziņojiet mainīgo ekspertīzi, no kuras mēs iegūsim visu darbinieku vārdu
  • Izmantojiet dom standarta funkciju ar nosaukumu "getElementsByTagName"
  • Tas iegūs visus elementus, kuru nosaukums ir prasme
  • Paziņojiet cilpu pār katru prasmju tagu
  • Palaidiet kodu - tas sniegs četru prasmju sarakstu

Kā izveidot XML mezglu

Mēs varam izveidot jaunu atribūtu, izmantojot funkciju "createElement", un pēc tam pievienot šo jauno atribūtu vai tagu esošajiem XML tagiem. Mēs pievienojām jaunu tagu "BigData" mūsu XML failā.

  1. Jums ir jākodē, lai esošajam XML tagam pievienotu jauno atribūtu (BigData)
  2. Tad jums ir jāizdrukā XML tags ar jauniem atribūtiem, kas pievienoti esošajam XML tagam
  • Lai pievienotu jaunu XML un pievienotu to dokumentam, mēs izmantojam kodu "doc.create elements"
  • Šis kods izveidos jaunu prasmju tagu mūsu jaunajam atribūtam "Big-data"
  • Pievienojiet šo prasmju tagu dokumentā pirmajam bērnam (darbiniekam)
  • Palaidiet kodu - parādīsies jaunais tags "lielie dati" kopā ar citu ekspertu sarakstu

XML parsētāja piemērs

Python 2 piemērs

importēt xml.dom.minidomdef main ():# izmantojiet parsēšanas () funkciju, lai ielādētu un parsētu XML failudoc = xml.dom.minidom.parse ("Myxml.xml");# izdrukājiet dokumenta mezglu un pirmās pakārtotās atzīmes nosaukumudrukāt doc.nodeNamedrukāt doc.firstChild.tagName# iegūstiet no dokumenta XML tagu sarakstu un izdrukājiet katru no tiemekspertīze = doc.getElementsByTagName ("ekspertīze")drukāt "% d zināšanas:"% zināšanas.lengthpar prasmēm ekspertīzē:drukas prasme.getAttribute ("nosaukums")# izveidojiet jaunu XML tagu un pievienojiet to dokumentānewexpertise = doc.createElement ("ekspertīze")newexpertise.setAttribute ("nosaukums", "BigData")doc.firstChild.appendChild (newexpertise)izdrukāt ""ekspertīze = doc.getElementsByTagName ("ekspertīze")drukāt "% d zināšanas:"% zināšanas.lengthpar prasmēm ekspertīzē:drukas prasme.getAttribute ("nosaukums")ja vārds == "__main__":galvenais ();

Python 3 piemērs

importēt xml.dom.minidomdef main ():# izmantojiet parsēšanas () funkciju, lai ielādētu un parsētu XML failudoc = xml.dom.minidom.parse ("Myxml.xml");# izdrukājiet dokumenta mezglu un pirmās pakārtotās atzīmes nosaukumudrukāt (doc.nodeName)drukāt (doc.firstChild.tagName)# iegūstiet no dokumenta XML tagu sarakstu un izdrukājiet katru no tiemekspertīze = doc.getElementsByTagName ("ekspertīze")drukāt ("% d zināšanas:"% zināšanas.length)par prasmēm ekspertīzē:drukāt (skill.getAttribute ("nosaukums"))# izveidojiet jaunu XML tagu un pievienojiet to dokumentānewexpertise = doc.createElement ("ekspertīze")newexpertise.setAttribute ("nosaukums", "BigData")doc.firstChild.appendChild (newexpertise)drukāt ("")ekspertīze = doc.getElementsByTagName ("ekspertīze")drukāt ("% d zināšanas:"% zināšanas.length)par prasmēm ekspertīzē:drukāt (skill.getAttribute ("nosaukums"))ja __nosaukums == "__main__":galvenais ();

Parsēt XML, izmantojot ElementTree

ElementTree ir API, lai manipulētu ar XML. ElementTree ir vienkāršs veids, kā apstrādāt XML failus.

Kā datu paraugu mēs izmantojam šādu XML dokumentu:

SQLPython

XML lasīšana, izmantojot ElementTree:

vispirms mums jāimportē modulis xml.etree.ElementTree.

import xml.etree.ElementTree as ET

Tagad ienesīsim saknes elementu:

root = tree.getroot()

Šis ir pilnīgs kods, lai lasītu virs xml datus

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)
izeja:
Expertise Data:SQLPython

Kopsavilkums:

Python ļauj parsēt visu XML dokumentu vienā piegājienā, nevis tikai vienu rindiņu vienlaikus. Lai parsētu XML dokumentu, atmiņā jābūt visu dokumentu.

  • Parsēt XML dokumentu
    • Importēt xml.dom.minidom
    • Izmantojiet funkciju "parsēt", lai parsētu dokumentu (doc = xml.dom.minidom.parse (faila nosaukums);
    • Izsauciet XML dokumentu sarakstu no XML dokumenta, izmantojot kodu (= doc.getElementsByTagName ("xml tagu nosaukums")
  • Lai izveidotu un pievienotu jaunu atribūtu XML dokumentā
    • Izmantot funkciju "createElement"