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)

XML:n jäsentäminen minidomilla

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.

Jäsennä XML käyttämällä minidomia

  • 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.

Jäsennä XML käyttämällä minidomia

  • 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.

  1. Sinun on koodattava lisätäksesi uusi attribuutti (BigData) olemassa olevaan XML-tunnisteeseen
  2. Sitten sinun on tulostettava XML-tunniste uusilla attribuutteilla, jotka on liitetty olemassa olevaan XML-tunnisteeseen

Kirjoita XML-solmu

  • 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"