Python Fișier XML – Cum se citește, se scrie și se analizează
⚡ Rezumat inteligent
Python Procesarea XML vă permite să citiți, să scrieți și să analizați documente XML utilizând modulele minidom și ElementTree încorporate. Clasa minidom încarcă un fișier în memorie ca DOM, în timp ce ElementTree oferă o modalitate mai rapidă și mai... PythonAPI-ul arborelui ic.

Secțiunile de mai jos acoperă analiza, scrierea și citirea fișierelor XML în Python.
Ce este XML?
XML înseamnă eXtensible Markup Language. A fost conceput pentru a stoca și transporta cantități mici și medii de date și este utilizat pe scară largă pentru partajarea informațiilor structurate.
Python vă permite să analizați și să modificați documente XML. Pentru a analiza un document XML, trebuie să aveți întregul document XML în memorie. În acest tutorial, vom vedea cum putem utiliza clasa XML minidom în Python pentru a încărca și analiza fișiere XML.
Cum să analizați XML folosind minidom
Am creat un exemplu de fișier XML pe care îl vom analiza.
Pasul 1) Creați exemplu de fișier XML
În interiorul fișierului, putem vedea numele, prenumele, domiciliul și domeniul de expertiză (SQL, Python, Testare și Afaceri).
Pasul 2) Utilizați funcția de analiză pentru a încărca și analiza fișierul XML
După ce am analizat documentul, vom afișa „numele nodului” din rădăcina documentului și „firstchild tagname”. Tagname și nodename sunt proprietățile standard ale fișierului XML.
- Importați modulul xml.dom.minidom și declarați fișierul care trebuie analizat (myxml.xml)
- Acest fișier conține câteva informații de bază despre un angajat, cum ar fi numele, numele, domiciliul, expertiza etc.
- Folosim funcția de analiză de pe XML minidom pentru a încărca și analiza fișierul XML
- Avem o variabilă doc, iar doc obține rezultatul funcției de analiză
- Vrem să imprimăm numele nodului și numele tag-ului copilului din fișier, așa că le declarăm în funcția de imprimare
- Rulați codul - Tipărește numele nodului (#document) din fișierul XML și primul nume de etichetă copil (angajat) din fișierul XML
notițeNumele nodului și numele tagului copilului sunt numele sau proprietățile standard ale unui dom XML.
Pasul 3) Apelați lista de etichete XML din documentul XML și afișați-o
Apoi, putem apela și lista de etichete XML din documentul XML și o putem afișa. Aici am afișat setul de competențe precum SQL, Python, Testarea și Afaceri.
- Declarăm variabila expertiză, din care vom exprimatractoate denumirile de expertiză pe care le are angajatul
- Utilizați funcția standard dom numită „getElementsByTagName”
- Acest lucru va obține toate elementele numite abilitate
- Declară o buclă peste fiecare dintre etichetele de abilitate
- Rulați codul - Va oferi o listă de patru abilități
Cum se scrie XML Node
Putem crea un nou atribut utilizând funcția „createElement” și apoi adăugați acest nou atribut sau etichetă la etichetele XML existente. Am adăugat o nouă etichetă „BigData” în fișierul nostru XML.
- Trebuie să scrieți cod pentru a adăuga noul atribut (BigData) la eticheta XML existentă.
- Apoi, trebuie să imprimați eticheta XML cu noul atribut adăugat la eticheta XML existentă.
- Pentru a adăuga o nouă etichetă XML și a o adăuga la document, folosim codul „doc.createElement”
- Acest cod va crea o nouă etichetă de abilitate pentru noul nostru atribut „BigData”.
- Adaugă această etichetă de competență în primul copil al documentului (angajat)
- Rulați codul - noua etichetă „BigData” va apărea împreună cu cealaltă listă de expertiză.
Exemplu de analizator XML
Python 2 Exemplu
import xml.dom.minidom def main(): # use the parse() function to load and parse an XML file doc = xml.dom.minidom.parse("Myxml.xml"); # print out the document node and the name of the first child tag print doc.nodeName print doc.firstChild.tagName # get a list of XML tags from the document and print each one expertise = doc.getElementsByTagName("expertise") print "%d expertise:" % expertise.length for skill in expertise: print skill.getAttribute("name") #Write a new XML tag and add it into the document newexpertise = doc.createElement("expertise") newexpertise.setAttribute("name", "BigData") doc.firstChild.appendChild(newexpertise) print " " expertise = doc.getElementsByTagName("expertise") print "%d expertise:" % expertise.length for skill in expertise: print skill.getAttribute("name") if name == "__main__": main();
Python 3 Exemplu
import xml.dom.minidom def main(): # use the parse() function to load and parse an XML file doc = xml.dom.minidom.parse("Myxml.xml"); # print out the document node and the name of the first child tag print (doc.nodeName) print (doc.firstChild.tagName) # get a list of XML tags from the document and print each one expertise = doc.getElementsByTagName("expertise") print ("%d expertise:" % expertise.length) for skill in expertise: print (skill.getAttribute("name")) # Write a new XML tag and add it into the document newexpertise = doc.createElement("expertise") newexpertise.setAttribute("name", "BigData") doc.firstChild.appendChild(newexpertise) print (" ") expertise = doc.getElementsByTagName("expertise") print ("%d expertise:" % expertise.length) for skill in expertise: print (skill.getAttribute("name")) if __name__ == "__main__": main();
Cum să analizați XML folosind ElementTree
ElementTree este o interfață de programare (API) pentru manipularea XML. ElementTree este o modalitate ușoară de a procesa fișiere XML.
Utilizăm următorul document XML ca exemplu de date:
<data> <items> <item name="expertise1">SQL</item> <item name="expertise2">Python</item> </items> </data>
Citirea XML folosind ElementTree:
Mai întâi trebuie să importăm modulul xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Acum să preluăm elementul rădăcină:
root = tree.getroot()
Mai jos este codul complet pentru citirea datelor XML de mai sus:
import xml.etree.ElementTree as ET tree = ET.parse('items.xml') root = tree.getroot() # all items data print('Expertise Data:') for elem in root: for subelem in elem: print(subelem.text)
ieșire:
Expertise Data: SQL Python




