Python XML-fil – Hur man läser, skriver och tolkar
⚡ Smart sammanfattning
Python XML-bearbetning låter dig läsa, skriva och analysera XML-dokument med hjälp av de inbyggda modulerna minidom och ElementTree. Klassen minidom laddar en fil i minnet som en DOM, medan ElementTree erbjuder en snabbare och mer Pythonic tree API.

Avsnitten nedan behandlar parsning, skrivning och läsning av XML-filer i Python.
Vad är XML?
XML står för eXtensible Markup Language. Den designades för att lagra och transportera små till medelstora mängder data och används ofta för att dela strukturerad information.
Python låter dig analysera och modifiera XML-dokument. För att analysera ett XML-dokument måste du ha hela XML-dokumentet i minnet. I den här handledningen ska vi se hur vi kan använda XML minidom-klassen i Python för att ladda och analysera XML-filer.
Hur man analyserar XML med minidom
Vi har skapat ett exempel på en XML-fil som vi ska analysera.
Steg 1) Skapa exempel på XML-fil
Inuti filen kan vi se förnamn, efternamn, hem och expertområdet (SQL, Python, Testning och affärsverksamhet).
Steg 2) Använd analysfunktionen för att ladda och analysera XML-filen
När vi har analyserat dokumentet skriver vi ut "nodnamnet" för dokumentets rot och "firstchild-tagnamnet". Tagnamn och nodenamn är standardegenskaperna för XML-filen.
- Importera modulen xml.dom.minidom och deklarera filen som ska parsas (myxml.xml)
- Denna fil innehåller en del grundläggande information om en anställd som förnamn, efternamn, hem, expertis, etc.
- Vi använder parsefunktionen på XML-minidomen för att ladda och analysera XML-filen
- Vi har en variabel doc, och doc får resultatet av parsefunktionen
- Vi vill skriva ut nodnamnet och det underordnade tagnamnet från filen, så vi deklarerar det i utskriftsfunktionen.
- Kör koden - Den skriver ut nodnamnet (#document) från XML-filen och det första underordnade taggnamnet (anställd) från XML-filen
AnmärkningarNodnamn och underordnat tagnamn är standardnamn eller egenskaper för en XML-dom.
Steg 3) Anropa listan med XML-taggar från XML-dokumentet och skriv ut den
Sedan kan vi också anropa listan med XML-taggar från XML-dokumentet och skriva ut den. Här skrev vi ut uppsättningen färdigheter som SQL, Python, Testning och Business.
- Deklarera variabeln expertis, från vilken vi ska ta utgångspunktentracalla expertisnamn som den anställde har
- Använd dom standardfunktionen som heter "getElementsByTagName"
- Detta kommer att få alla element som heter skicklighet
- Deklarera en loop över var och en av färdighetstaggarna
- Kör koden – det ger en lista med fyra färdigheter
Hur man skriver XML-nod
Vi kan skapa ett nytt attribut genom att använda funktionen "createElement" och sedan lägga till detta nya attribut eller tag till de befintliga XML-taggarna. Vi har lagt till en ny tagg "BigData" i vår XML-fil.
- Du måste skriva kod för att lägga till det nya attributet (BigData) till den befintliga XML-taggen.
- Sedan måste du skriva ut XML-taggen med det nya attributet tillagt till den befintliga XML-taggen.
- För att lägga till en ny XML-tagg och lägga till den i dokumentet använder vi koden "doc.createElement".
- Den här koden skapar en ny färdighetstagg för vårt nya attribut "BigData".
- Lägg till den här färdighetstaggen i dokumentets första underordnade (anställd)
- Kör koden – den nya taggen ”BigData” kommer att visas med den andra listan över experter
Exempel på XML-tolk
Python 2 Exempel
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 Exempel
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();
Hur man analyserar XML med ElementTree
ElementTree är ett API för att manipulera XML. ElementTree är ett enkelt sätt att bearbeta XML-filer.
Vi använder följande XML-dokument som exempeldata:
<data> <items> <item name="expertise1">SQL</item> <item name="expertise2">Python</item> </items> </data>
Läser XML med ElementTree:
Vi måste först importera modulen xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Nu ska vi hämta rotelementet:
root = tree.getroot()
Följande är den fullständiga koden för att läsa ovanstående XML-data:
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)
Produktion:
Expertise Data: SQL Python




