Python XML-tiedosto – Kuinka lukea, kirjoittaa ja jäsentää
⚡ Älykäs yhteenveto
Python XML-käsittelyn avulla voit lukea, kirjoittaa ja jäsentää XML-dokumentteja sisäänrakennettujen minidom- ja ElementTree-moduulien avulla. Minidom-luokka lataa tiedoston muistiin DOM-muodossa, kun taas ElementTree tarjoaa nopeamman ja tehokkaamman tavan käsitellä tiedostoa. Pythonic-puun API.
Alla olevat osiot käsittelevät XML-tiedostojen jäsentämistä, kirjoittamista ja lukemista Python.
Mikä on XML?
XML tulee sanoista eXtensible Markup Language. Se on suunniteltu tallentamaan ja siirtämään pieniä ja keskisuuria tietomääriä, ja sitä käytetään laajalti strukturoidun tiedon jakamiseen.
Python mahdollistaa XML-dokumenttien jäsentämisen ja muokkaamisen. Jotta voit jäsentää XML-dokumentin, sinulla on oltava koko XML-dokumentti muistissa. Tässä opetusohjelmassa näemme, kuinka voimme käyttää XML-minidom-luokkaa Python ladata ja jäsentää XML-tiedostoja.
XML:n jäsentäminen minidomilla
Olemme luoneet malli-XML-tiedoston, jonka aiomme jäsentää.
Vaihe 1) Luo malli-XML-tiedosto
Tiedoston sisällä näemme etunimen, sukunimen, kodin ja osaamisalueen (SQL, Python, Testaus ja liiketoiminta).
Vaihe 2) Käytä jäsennystoimintoa ladataksesi ja jäsentääksesi XML-tiedoston
Kun olemme jäsentäneet dokumentin, tulostamme dokumentin juuren ”node name” -tiedon ja ”firstchild tagname” -tiedon. Tagname ja nodename ovat XML-tiedoston vakio-ominaisuuksia.
- Tuo xml.dom.minidom-moduuli ja määritä jäsennettävä tiedosto (myxml.xml)
- Tämä tiedosto sisältää joitain perustietoja työntekijästä, kuten etunimi, sukunimi, koti, asiantuntemus jne.
- Käytämme XML-minidomin jäsennystoimintoa XML-tiedoston lataamiseen ja jäsentämiseen
- Meillä on muuttuja doc, ja doc saa jäsennysfunktion tuloksen
- Haluamme tulostaa tiedostosta solmun nimen ja lapsen tagin nimen, joten määrittelemme ne tulostusfunktiossa.
- Suorita koodi - Se tulostaa solmun nimen (#document) XML-tiedostosta ja ensimmäisen alitunnisteen (työntekijä) XML-tiedostosta
HuomautuksiaSolmun nimi ja lapsitunnisteen nimi ovat XML-dom-objektin vakionimiä tai -ominaisuuksia.
Vaihe 3) Kutsu XML-dokumentin XML-tunnisteiden luettelo ja tulosta se
Seuraavaksi voimme myös kutsua XML-dokumentin XML-tagien luettelon ja tulostaa sen. Tässä tulostimme taitojoukon, kuten SQL:n, Python, Testaus ja Business.
- Määrittele muuttuja asiantuntemus, josta aiomme johtaatrackaikki työntekijän asiantuntemuksen nimet
- Käytä dom-standardifunktiota "getElementsByTagName"
- Tämä saa kaikki elementit nimeltään taito
- Määritä silmukka jokaisen taitotunnisteen yli
- Suorita koodi - Se antaa listan neljästä taidosta
Kuinka kirjoittaa XML-solmu
Voimme luoda uuden attribuutin käyttämällä "createElement"-funktiota ja sitten liittää tämän uuden attribuutin tai tagin olemassa oleviin XML-tageihin. Lisäsimme uuden tagin "BigData" XML-tiedostoomme.
- Sinun on kirjoitettava koodi lisätäksesi uuden attribuutin (BigData) olemassa olevaan XML-tagiin.
- Sitten sinun on tulostettava XML-tagi, johon on lisätty uusi attribuutti olemassa olevaan XML-tagiin.
- Uuden XML-tagin lisäämiseen ja sen lisäämiseen dokumenttiin käytämme koodia “doc.createElement”.
- Tämä koodi luo uuden taitotunnisteen uudelle attribuutillemme ”BigData”.
- Lisää tämä taitotaso dokumentin ensimmäiseen aliobjektiin (työntekijä)
- Suorita koodi – uusi tunniste ”BigData” ilmestyy toisen asiantuntemusluettelon kanssa.
Esimerkki XML-parserista
Python 2-esimerkki
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-esimerkki
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();
XML:n jäsentäminen ElementTreen avulla
ElementTree on XML:n käsittelyyn tarkoitettu API. ElementTree on helppo tapa käsitellä XML-tiedostoja.
Käytämme esimerkkitietona seuraavaa XML-dokumenttia:
<data> <items> <item name="expertise1">SQL</item> <item name="expertise2">Python</item> </items> </data>
XML:n lukeminen ElementTreen avulla:
Meidän on ensin tuotava xml.etree.ElementTree-moduuli.
import xml.etree.ElementTree as ET
Haetaan nyt juurielementti:
root = tree.getroot()
Seuraavassa on täydellinen koodi yllä olevien XML-tietojen lukemiseen:
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)
lähtö:
Expertise Data: SQL Python





