Python använder Document Object Model för att lagra och manipulera XML-element . Det tolkar automatiskt XML-kod och skapar ett dokument objekt att modellera det , som innehåller XML-noder . Den XML-bibliotek kan sedan stega igenom dokumentet för att hitta olika element och attribut . Du måste importera biblioteket " xml.dom.minidom " för att få tillgång Pythons DOM XML bearbetning bibliotek . Öppna och läsa en XML -fil
Python XML -bibliotek kan automatiskt tolka XML textfiler eller textsträngar som representerar ett XML-dokument . Här är ett exempel på hur man kan tolka en XML textfil och lagra resultatet som en Python Document objekt :
xmlFile = open ( " sample.xml " ) XMLDocument = xml.dom.minidom.parse ( xmlFile ) katalog
Om du vill tolka en sträng av XML , du behöver den " parseString " funktionen .
xmlString = " < childnode /> En annan nod < /differentchildnode > < /parentNode > " XMLDocument = xml.dom.minidom.parseString ( xmlString ) , Addera Åtkomst Element noder och underordnade noder
XML-element representeras som noder . För att komma åt ett element i XML-dokumentet , måste du söka efter den med med metoden " getElementsByTagName , " ex :
sökresultaten = getElementsByTagName ( " ExampleNode " ) katalog
Denna linje av kod returnerar ett nodelist . För att få ett enda element nod , kan du ringa helt enkelt :
myNode = sökresultaten [ 0 ] Hotell Noder
kan innehålla underordnade noder . Du kan få en lista över underordnade noder ges en hänvisning till en förälder nod , t.ex. :
myChildNodes = myNode.childNodes
Data och attribut
för att komma åt data som finns i ett element öppning och taggar stängning , måste du öppna " uppgifter " fältet i nodobjektet . Till exempel, om en nod som heter " myNode " representerade XML texten " sampletext < /ExampleNode > " i ett dokument , så att du kan extrahera ordet " sampletext " genom att referera " . myNode.data " för att komma åt attributen för denna nod , skulle du behöva öppna först NamedNodeMap av de attribut som följer:
attrList = myNode.attributes
Sen från den listan , extrahera dig namnen och värdena för attributen :
myList = [ ] for i in intervallet ( attrList.length ) : myList.append ( attrList.item ( i) . namn + ' = ' + attrList.item ( i) värdet ) print . " , " join ( myList )
Skriva XML kod
Du kan. skriva ett Node objekt till någon " skrivbar " objekt med funktionen " writexml . " Detta inkluderar skrivbara filer . Ett exempel är följande :
DestinationFile = open ( " samplewrite.xml " , " w " ) doc.writexml ( DestinationFile ) destinationFile.close ( ) katalog
Du kan också skriva ut XML-dokument som en sträng med funktionen " toxml " eller " toprettyxml , " ex :
print doc.toxml ( ) katalog
eller
print doc.toprettyxml ( ) katalog
funktionen " toprettyxml " använder mellanslag och indrag för att göra XML mer läsbar för människor .