Python XML-jäsentäjän opas: Lue esimerkki xml-tiedostosta (Minidom, ElementTree)

Sisällysluettelo:

Anonim

Mikä on XML?

XML on lyhenne sanoista eXtensible Markup Language. Se on suunniteltu pienten ja keskisuurten tietomäärien tallentamiseen ja siirtämiseen, ja sitä käytetään laajalti jäsenneltyjen tietojen jakamiseen.

Python antaa sinun jäsentää ja muokata XML-asiakirjaa. XML-asiakirjan jäsentämiseksi sinulla on oltava koko XML-asiakirja muistissa. Tässä opetusohjelmassa näemme, kuinka voimme käyttää Pythonin XML-minidom-luokkaa XML-tiedoston lataamiseen ja jäsentämiseen.

Tässä opetusohjelmassa opimme-

  • XML: n jäsentäminen minidomilla
  • XML-solmun luominen
  • XML: n jäsentäminen ElementTreen avulla

XML: n jäsentäminen minidomilla

Olemme luoneet XML-esimerkkitiedoston, jonka aiomme jäsentää.

Vaihe 1) Tiedoston sisällä näemme etunimen, sukunimen, kodin ja osaamisalueen (SQL, Python, testaus ja liiketoiminta)

Vaihe 2) Kun olemme jäsentäneet asiakirjan, tulostamme asiakirjan juuren "solmun nimen" ja " ensimmäisen lapsen tagin nimen" . Tagname ja solmunimi ovat XML-tiedoston vakio-ominaisuuksia.

  • 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.
  • XML-tiedoston lataamiseen ja jäsentämiseen käytämme XML-minidomin jäsennysfunktiota
  • Meillä on muuttuja doc ja doc saa jäsennustoiminnon tuloksen
  • Haluamme tulostaa solmunimen ja alatunnisteen tiedostosta, joten ilmoitamme sen tulostustoiminnossa
  • Suorita koodi - Se tulostaa solmunimen (#document) XML-tiedostosta ja ensimmäisen lapsen taginimen (työntekijä) XML-tiedostosta

Huomaa :

Solmunimi ja alatunnisteen nimi ovat XML-toimialueen standardinimet tai ominaisuudet. Jos et ole perehtynyt tämäntyyppisiin nimitystapoihin.

Vaihe 3) Voimme myös kutsua XML-tunnisteiden luettelon XML-asiakirjasta ja tulostaa. Tulostimme tässä joukon taitoja, kuten SQL, Python, Testing ja Business.

  • Ilmoita vaihteleva asiantuntemus, josta aiomme poimia kaiken työntekijällä olevan asiantuntemuksen
  • Käytä dom-vakiotoimintoa nimeltä getElementsByTagName
  • Tämä saa kaikki elementit nimeltä taito
  • Ilmoita silmukka jokaisen taitotunnisteen yli
  • Suorita koodi - Se antaa luettelon neljästä taitosta

XML-solmun luominen

Voimme luoda uuden määritteen käyttämällä "createElement" -toimintoa ja liittää sitten tämän uuden määritteen tai tunnisteen olemassa oleviin XML-tunnisteisiin. Lisäsimme uuden tunnisteen "BigData" XML-tiedostoon.

  1. Sinun on koodattava, jotta uusi attribuutti (BigData) lisätään olemassa olevaan XML-tagiin
  2. Sitten sinun on tulostettava XML-tunniste uusilla määritteillä, jotka on liitetty olemassa olevaan XML-tagiin
  • Jos haluat lisätä uuden XML: n ja lisätä sen asiakirjaan, käytämme koodia "doc.create elements"
  • Tämä koodi luo uuden taitotagin uudelle attribuutillemme "Big-data"
  • Lisää tämä taitotunniste asiakirjan ensimmäiseen lapseen (työntekijään)
  • Suorita koodi - uusi tunniste "big data" ilmestyy toisen asiantuntijaluettelon mukana

Esimerkki XML-jäsentimestä

Python 2 -esimerkki

tuo xml.dom.minidomdef main ():# käytä XML-tiedoston lataamiseen ja jäsentämiseen parse () -funktiotadoc = xml.dom.minidom.parse ("Myxml.xml");# tulosta asiakirjasolmu ja ensimmäisen alatunnisteen nimitulosta doc.nodeNametulosta doc.firstChild.tagName# hae asiakirjasta luettelo XML-tunnisteista ja tulosta kukin niistäasiantuntemus = doc.getElementsByTagName ("asiantuntemus")tulosta "% d asiantuntemus:"% asiantuntemus.pituusasiantuntemustaidosta:tulosta taito.getAttribute ("nimi")# luo uusi XML-tunniste ja lisää se asiakirjaannewexpertise = doc.createElement ("asiantuntemus")newexpertise.setAttribute ("nimi", "BigData")doc.firstChild.appendChild (uusiosaaminen)Tulosta " "asiantuntemus = doc.getElementsByTagName ("asiantuntemus")tulosta "% d asiantuntemus:"% asiantuntemus.pituusasiantuntemustaidosta:tulosta taito.getAttribute ("nimi")jos nimi == "__main__":pää ();

Python 3 -esimerkki

tuo xml.dom.minidomdef main ():# käytä XML-tiedoston lataamiseen ja jäsentämiseen parse () -funktiotadoc = xml.dom.minidom.parse ("Myxml.xml");# tulosta asiakirjasolmu ja ensimmäisen alatunnisteen nimitulosta (doc.nodeName)tulosta (doc.firstChild.tagName)# hae asiakirjasta luettelo XML-tunnisteista ja tulosta kukin niistäasiantuntemus = doc.getElementsByTagName ("asiantuntemus")tulosta ("% d asiantuntemusta:"% asiantuntemusta. pituus)asiantuntemustaidosta:tulosta (skill.getAttribute ("nimi"))# luo uusi XML-tunniste ja lisää se asiakirjaannewexpertise = doc.createElement ("asiantuntemus")newexpertise.setAttribute ("nimi", "BigData")doc.firstChild.appendChild (uusiosaaminen)Tulosta (" ")asiantuntemus = doc.getElementsByTagName ("asiantuntemus")tulosta ("% d asiantuntemusta:"% asiantuntemusta. pituus)asiantuntemustaidosta:tulosta (skill.getAttribute ("nimi"))jos __nimi__ == "__main__":pää ();

XML: n jäsentäminen ElementTreen avulla

ElementTree on API XML: n manipuloimiseksi. ElementTree on helppo tapa käsitellä XML-tiedostoja.

Käytämme seuraavaa XML-asiakirjaa esimerkkitiedoina:

SQLPython

XML: n lukeminen ElementTree-ohjelmalla:

meidän on ensin tuotava xml.etree.ElementTree-moduuli.

import xml.etree.ElementTree as ET

Haetaan nyt juurielementti:

root = tree.getroot()

Seuraava on täydellinen koodi edellä olevien xml-tietojen lukemiseen

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)
lähtö:
Expertise Data:SQLPython

Yhteenveto:

Pythonin avulla voit jäsentää koko XML-asiakirjan kerralla eikä vain yhdellä rivillä kerrallaan. XML-asiakirjan jäsentämiseksi sinulla on oltava koko asiakirja muistissa.

  • XML-asiakirjan jäsentäminen
    • Tuo xml.dom.minidom
    • Käytä jäsennellä funktiota jäsentää dokumentti (doc = xml.dom.minidom.parse (tiedostonimi);
    • Kutsu XML-dokumenttien XML-tunnisteiden luettelo koodilla (= doc.getElementsByTagName ("xml-tunnisteiden nimi")
  • Uuden määritteen luominen ja lisääminen XML-dokumenttiin
    • Käytä toimintoa "createElement"