Python Fișier XML – Cum se citește, se scrie și se analizează

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 documentul XML, trebuie să aveți în memorie întregul document XML. În acest tutorial, vom vedea cum putem folosi 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)

Cum să analizați XML folosind minidom

Pasul 2) Utilizați funcția de analiză pentru a încărca și analiza fișierul XML

Odată ce am analizat documentul, vom tipări „numele nodului” din rădăcina documentului și „eticheta primului copil”. Nume etichetă și numele nod sunt proprietățile standard ale fișierului XML.

Analizați XML folosind minidom

  • 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 variabila doc și doc obține rezultatul funcției de analiză
  • Vrem să tipărim numele nodului și eticheta copil 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țe:

Nodename și child tagname sunt numele sau proprietățile standard ale unui dom XML.

Pasul 3) Apelați lista de etichete XML din documentul XML și imprimați

În continuare, putem apela și lista de etichete XML din documentul XML și tipărită. Aici am tipărit setul de abilități precum SQL, Python, Testarea și Afaceri.

Analizați XML folosind minidom

  • Declarați expertiza variabilă, din care vom extrage toată denumirea de expertiză pe care o are angajatul
  • Utilizați funcția standard dom numită „getElementsByTagName”
  • Acest lucru va obține toate elementele numite abilitate
  • Declarați bucla peste fiecare dintre etichetele de calificare
  • 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.

  1. Trebuie să codificați pentru a adăuga noul atribut (BigData) la eticheta XML existentă
  2. Apoi, trebuie să imprimați eticheta XML cu atribute noi adăugate etichetei XML existente

Scrieți XML Node

  • Pentru a adăuga un nou XML și a-l adăuga în document, folosim codul „doc.create elements”
  • Acest cod va crea o nouă etichetă de calificare pentru noul nostru atribut „Big-data”
  • Adăugați această etichetă de calificare în documentul primul copil (angajat)
  • Rulați codul - noua etichetă „date mari” 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 un API pentru manipularea XML. ElementTree este modalitatea ușoară de procesare a fișierelor 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:

trebuie mai întâi să importam modulul xml.etree.ElementTree.

import xml.etree.ElementTree as ET

Acum să luă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

Rezumat

Python vă permite să analizați întregul document XML dintr-o dată și nu doar o linie la un moment dat. Pentru a analiza documentul XML, trebuie să aveți întregul document în memorie.

  • Pentru a analiza documentul XML
  • Import xml.dom.minidom
  • Utilizați funcția „parse” pentru a analiza documentul ( doc=xml.dom.minidom.parse (nume fișier);
  • Apelați lista de etichete XML din documentul XML folosind codul (=doc.getElementsByTagName( „numele etichetelor xml”)
  • Pentru a crea și adăuga un nou atribut în documentul XML
  • Utilizați funcția „createElement”

Rezumați această postare cu: