Python XML fájl – Olvasás, írás és elemzés
⚡ Okos összefoglaló
Python Az XML-feldolgozás lehetővé teszi XML dokumentumok olvasását, írását és elemzését a beépített minidom és ElementTree modulok segítségével. A minidom osztály DOM-ként tölti be a fájlt a memóriába, míg az ElementTree gyorsabb és hatékonyabb megoldást kínál. Pythonic fa API.
Az alábbi szakaszok az XML fájlok elemzését, írását és olvasását tárgyalják. Python.
Mi az XML?
Az XML az eXtensible Markup Language rövidítése. Kis és közepes mennyiségű adat 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.
Python lehetővé teszi XML dokumentumok elemzését és módosítását. Egy XML dokumentum elemzéséhez a teljes XML dokumentumnak a memóriában kell lennie. Ebben az oktatóanyagban megnézzük, hogyan használhatjuk az XML minidom osztályt a Python XML fájlok betöltéséhez és elemzéséhez.
XML elemzése minidom segítségével
Létrehoztunk egy minta XML fájlt, amelyet elemezni fogunk.
1. lépés) Hozzon létre minta XML-fájlt
A fájlon belül láthatjuk a keresztnevet, a vezetéknevet, az otthont és a szakterületet (SQL, Python, Tesztelés és Üzlet).
2. lépés) Használja az elemzés funkciót az XML fájl betöltéséhez és elemzéséhez
Miután elemeztük a dokumentumot, kinyomtatjuk a dokumentum gyökerének „csomópontnevét” és az „első gyermekcímkenevét”. A címkenév és a csomópontnév az XML fájl standard tulajdonságai.
- Importáld az xml.dom.minidom modult, és deklaráld a analizálandó fájlt (myxml.xml)
- Ez a fájl néhány alapvető információt tartalmaz egy alkalmazottról, például keresztnév, vezetéknév, otthon, szakértelem stb.
- Az XML minidom elemző funkcióját használjuk az XML fájl betöltésére és elemzésére
- Van egy doc változónk, és a doc visszaadja a parse függvény eredményét.
- Ki akarjuk nyomtatni a fájlban található csomópontnevet és gyermek tagnevet, ezért deklaráljuk a print függvényben.
- Futtassa a kódot – Kiírja a csomópontnevet (#document) az XML fájlból és az első gyermek címkenevet (alkalmazott) az XML fájlból
MegjegyzésekA csomópontnév és a gyermek tagnév egy XML dom szabványos nevei vagy tulajdonságai.
3. lépés) Hívja meg az XML dokumentumból az XML-címkék listáját, és nyomtassa ki.
Ezután meghívhatjuk az XML dokumentum XML-címkéinek listáját is, és kinyomtathatjuk. Itt kinyomtattuk az olyan készségek halmazát, mint az SQL, Python, Tesztelés és Üzleti.
- Deklaráljuk a szakértelem változót, amelyből kiindulva kiindulunktracaz alkalmazott összes szakértelmének neve
- Használja a „getElementsByTagName” nevű szabványos dom függvényt
- Ez megkapja az összes skill nevű elemet
- Deklarálj egy ciklust az egyes képességcímkék felett
- Futtasd a kódot - Négy készség listáját fogja megadni
Hogyan írjunk XML csomópontot
Létrehozhatunk egy új attribútumot a „createElement” függvénnyel, majd ezt az új attribútumot vagy címkét hozzáfűzhetjük a meglévő XML címkékhez. Új „BigData” címkét adtunk az XML-fájlunkhoz.
- Kódot kell írnod 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 úgy, hogy az új attribútum hozzá van fűzve a meglévő XML címkéhez.
- Egy új XML-címke hozzáadásához és a dokumentumhoz való hozzáadásához a „doc.createElement” kódot használjuk.
- Ez a kód egy új készségcímkét hoz létre az új „BigData” attribútumunkhoz.
- Adja hozzá ezt a készségcímkét a dokumentum első gyermekéhez (alkalmazott)
- Futtasd a kódot – az új „BigData” címke megjelenik a többi szakértelem listájával.
XML-elemző példa
Python 2 Példa
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 Példa
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 elemzése az ElementTree segítségével
Az ElementTree egy API XML manipulálására. Az ElementTree egy egyszerű módja az XML fájlok feldolgozásának.
Mintaadatként a következő XML dokumentumot használjuk:
<data> <items> <item name="expertise1">SQL</item> <item name="expertise2">Python</item> </items> </data>
XML olvasása az ElementTree segítségével:
Először importálnunk kell az xml.etree.ElementTree modult.
import xml.etree.ElementTree as ET
Most pedig keressük meg a gyökérelemet:
root = tree.getroot()
A fenti XML adatok beolvasásához a következő teljes kódot láthatjuk:
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)
output:
Expertise Data: SQL Python





