Python XML elemző oktatóanyag: Olvassa el az xml fájl példáját (Minidom, ElementTree)

Tartalomjegyzék:

Anonim

Mi az XML?

Az XML az eXtensible Markup Language rövidítést jelenti. Kis és közepes mennyiségű adatok tárolására és szállítására tervezték, és széles körben használják strukturált információk megosztására.

A Python lehetővé teszi az XML dokumentum elemzését és módosítását. Az XML dokumentum elemzéséhez a teljes XML dokumentumnak a memóriában kell lennie. Ebben az oktatóanyagban meglátjuk, hogyan használhatjuk az XML minidom osztályt a Pythonban az XML fájl betöltéséhez és elemzéséhez.

Ebben az oktatóanyagban megtanuljuk-

  • Az XML elemzése a minidom használatával
  • XML csomópont létrehozása
  • XML elemzése az ElementTree használatával

Az XML elemzése a minidom használatával

Létrehoztunk egy minta XML fájlt, amelyet elemezni fogunk.

1. lépés: A fájlban láthatjuk a keresztnevet, a vezetéknevet, az otthont és a szakterületet (SQL, Python, Testing és Business)

2. lépés: Miután elemeztük a dokumentumot, kinyomtatjuk a dokumentum gyökér "csomópont nevét" és az " elsőgyerek címkéjét" . A tagname és a nodename az XML fájl szokásos tulajdonságai.

  • Importálja az xml.dom.minidom modult, és deklarálja a feldolgozandó fájlt (myxml.xml)
  • Ez a fájl tartalmaz néhány alapvető információt az alkalmazottakról, például keresztnevet, vezetéknevet, otthont, szakértelmet stb.
  • Az XML fájl elemzésének funkcióját az XML fájl betöltésére és elemzésére használjuk
  • Van változó doc, és a doc megkapja az elemzési függvény eredményét
  • Ki akarjuk nyomtatni a fájlból a csomó- és gyermekcím nevét, ezért deklaráljuk nyomtatási funkcióban
  • Futtassa a kódot - kinyomtatja a csomópontnevet (#dokumentum) az XML fájlból és az első gyermekcím nevét (alkalmazott) az XML fájlból

Megjegyzés :

A csomópontnév és a gyermekcímke az XML-domén szokásos neve vagy tulajdonságai. Abban az esetben, ha nem ismeri az ilyen típusú elnevezési szokásokat.

3. lépés: Hívhatjuk az XML címkék listáját az XML dokumentumból és kinyomtathatjuk. Itt kinyomtattuk azokat a készségeket, mint az SQL, a Python, a Testing és az Business.

  • Nyújtsa be a változó szakértelmet, amelyből ki fogjuk vonni az összes alkalmazott nevet
  • Használja a "getElementsByTagName" nevű dom standard függvényt
  • Ezzel megkapja az összes elnevezett elemet
  • Nyújtsa be a hurkot a készségcímkék mindegyikén
  • Futtassa a kódot - Megadja a négy készség listáját

XML csomópont létrehozása

A "createElement" függvény segítségével létrehozhatunk egy új attribútumot, majd hozzáfűzhetjük ezt az új attribútumot vagy címkét a meglévő XML-címkékhez. Hozzáadtunk egy új "BigData" címkét az XML fájlunkba.

  1. Kódolnia kell az új attribútum (BigData) hozzáadásához a meglévő XML címkéhez
  2. Ezután ki kell nyomtatnia az XML-címkét új attribútumokkal együtt, amelyek a meglévő XML-címkéhez vannak mellékelve
  • Új XML hozzáadásához és hozzáadásához a dokumentumhoz a "doc.create elements" kódot használjuk
  • Ez a kód új készségcímkét hoz létre az új "Big-data" attribútumhoz
  • Adja hozzá ezt a készségcímkét a dokumentum első gyermekéhez (alkalmazottjához)
  • Futtassa a kódot - az új "big data" címke megjelenik a másik szakértői listával együtt

XML elemző példa

Python 2 példa

importálja az xml.dom.minidom fájltdef main ():# használja a parse () függvényt egy XML fájl betöltésére és elemzéséredoc = xml.dom.minidom.parse ("Myxml.xml");# nyomtassa ki a dokumentum csomópontot és az első gyermekcímke nevétnyomtassa ki a doc.nodeName fájltnyomtassa ki a doc.firstChild.tagName fájlt# kap egy listát az XML-címkékről a dokumentumból, és mindegyiket kinyomtatjaszakértelem = doc.getElementsByTagName ("szakértelem")print "% d szakértelem:"% szakértelem.hossza szakértelemhez szükséges jártasság:print skill.getAttribute ("név")# hozzon létre egy új XML címkét, és adja hozzá a dokumentumhoznewexpertise = doc.createElement ("szakértelem")newexpertise.setAttribute ("név", "BigData")doc.firstChild.appendChild (új szakértelem)"" nyomtatásszakértelem = doc.getElementsByTagName ("szakértelem")print "% d szakértelem:"% szakértelem.hossza szakértelemhez szükséges jártasság:print skill.getAttribute ("név")ha név == "__main__":fő();

Python 3 példa

importálja az xml.dom.minidom fájltdef main ():# használja a parse () függvényt egy XML fájl betöltésére és elemzéséredoc = xml.dom.minidom.parse ("Myxml.xml");# nyomtassa ki a dokumentum csomópontot és az első gyermekcímke nevétnyomtatás (doc.nodeName)nyomtatás (doc.firstChild.tagName)# kap egy listát az XML-címkékről a dokumentumból, és mindegyiket kinyomtatjaszakértelem = doc.getElementsByTagName ("szakértelem")nyomtatás ("% d szakértelem:"% szakértelem.hossz)a szakértelemhez szükséges jártasság:nyomtatás (skill.getAttribute ("név"))# hozzon létre egy új XML címkét, és adja hozzá a dokumentumhoznewexpertise = doc.createElement ("szakértelem")newexpertise.setAttribute ("név", "BigData")doc.firstChild.appendChild (új szakértelem)nyomtatás ("")szakértelem = doc.getElementsByTagName ("szakértelem")nyomtatás ("% d szakértelem:"% szakértelem.hossz)a szakértelemhez szükséges jártasság:nyomtatás (skill.getAttribute ("név"))ha __name__ == "__main__":fő();

XML elemzése az ElementTree használatával

Az ElementTree egy API az XML manipulálására. Az ElementTree az XML fájlok egyszerű feldolgozási módja.

A következő XML dokumentumot használjuk mintadatként:

SQLPython

XML olvasása az ElementTree használatával:

először be kell importálnunk az xml.etree.ElementTree modult.

import xml.etree.ElementTree as ET

Most töltsük le a gyökérelemet:

root = tree.getroot()

Az alábbiakban a teljes kód olvasható az xml adatok felett

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)
Kimenet:
Expertise Data:SQLPython

Összegzés:

A Python lehetővé teszi, hogy a teljes XML dokumentumot egyetlen menetben elemezze, és ne csak egy sort egy időben. Az XML dokumentum elemzéséhez a teljes dokumentumnak memóriában kell lennie.

  • XML-dokumentum elemzése
    • Importálja az xml.dom.minidom fájlt
    • A "parse" függvénnyel elemezheti a dokumentumot (doc = xml.dom.minidom.parse (fájlnév);
    • Hívja meg az XML-címkék listáját az XML-dokumentumból a kód használatával (= doc.getElementsByTagName ("xml-címkék neve")
  • Új attribútum létrehozása és hozzáadása az XML dokumentumban
    • A "createElement" függvény használata