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.
- Kódolnia kell az új attribútum (BigData) hozzáadásához a meglévő XML címkéhez
- 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:
- SQL
- Python
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