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ā.
- Jums ir jākodē, lai esošajam XML tagam pievienotu jauno atribūtu (BigData)
- 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:
- SQL
- Python
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"