Python XML-tiedosto – Kuinka lukea, kirjoittaa ja jäsentää
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 voit jäsentää ja muokata XML-dokumentteja. Jotta voit jäsentää XML-asiakirjan, koko XML-dokumentin on oltava 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 asiakirjan, tulostamme sen "solmun nimi" asiakirjan juuresta ja "ensimmäisen lapsen tunniste". Tunnisteen nimi ja solmun nimi ovat XML-tiedoston vakioominaisuuksia.
- Tuo xml.dom.minidom-moduuli ja ilmoita 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 lapsitunnisteen nimen, joten ilmoitamme ne tulostustoiminnossa
- Suorita koodi - Se tulostaa solmun nimen (#document) XML-tiedostosta ja ensimmäisen alitunnisteen (työntekijä) XML-tiedostosta
Huomautuksia:
Solmun nimi ja lapsitunnistenimi ovat XML-domin vakionimiä tai ominaisuuksia.
Vaihe 3) Kutsu luettelo XML-tunnisteista XML-dokumentista ja tulostetaan
Seuraavaksi voimme myös kutsua luettelon XML-tunnisteista XML-dokumentista ja tulostettuna. Täällä tulostimme joukon taitoja, kuten SQL, Python, Testaus ja Business.
- Ilmoita muuttuva asiantuntemus, josta poimimme kaikki työntekijän asiantuntemuksen nimi
- Käytä dom-standardifunktiota "getElementsByTagName"
- Tämä saa kaikki elementit nimeltään taito
- Ilmoita silmukan jokaisen taitotunnisteen päälle
- Suorita koodi - Se antaa luettelon 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 koodattava lisätäksesi uusi attribuutti (BigData) olemassa olevaan XML-tunnisteeseen
- Sitten sinun on tulostettava XML-tunniste uusilla attribuutteilla, jotka on liitetty olemassa olevaan XML-tunnisteeseen
- Uuden XML:n lisäämiseen ja dokumenttiin lisäämiseen käytämme koodia "doc.create elements".
- Tämä koodi luo uuden taitotunnisteen uudelle attribuutillemme "Big-data"
- Lisää tämä taitotunniste asiakirjaan ensimmäinen lapsi (työntekijä)
- Suorita koodi - uusi "big data" -tunniste tulee näkyviin toisen asiantuntemuksen 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 sovellusliittymä XML:n käsittelyyn. 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
Yhteenveto
Python Sen avulla voit jäsentää koko XML-asiakirjan kerralla, ei vain yhtä riviä kerrallaan. Jotta voit jäsentää XML-asiakirjan, koko asiakirjan on oltava muistissa.
- XML-asiakirjan jäsentäminen
- Tuo xml.dom.minidom
- Käytä funktiota "parse" jäsentääksesi asiakirjan ( doc=xml.dom.minidom.parse (tiedoston nimi);
- Kutsu XML-tunnisteiden luettelo XML-dokumentista koodilla (=doc.getElementsByTagName("xml-tunnisteiden nimi")
- Uuden attribuutin luominen ja lisääminen XML-dokumenttiin
- Käytä toimintoa "createElement"