Python bruker Document Object Model å lagre og manipulere XML-elementer . Den analyserer automatisk XML-kode og skaper et dokument objekt å modellere den, som inneholder XML- noder. XML bibliotek kan deretter gå gjennom dokumentet for å finne ulike elementer og attributter . Du må importere biblioteket " xml.dom.minidom " for å få tilgang Pythons DOM XML prosessering bibliotek . Tilgang til og Lese en XML -fil
Pythons XML bibliotek kan automatisk analysere XML tekstfiler eller tekststrenger som representerer et XML-dokument . Her er et eksempel på hvordan å analysere en XML tekstfil og lagre resultatet som en Python Document objekt : en
xmlFile = open ( " sample.xml ") XmlDocument = xml.dom.minidom.parse ( xmlFile )
p Hvis du ønsker å analysere en streng med XML , trenger du " parseString "-funksjonen .
xmlString = " < childnode /> En annen node < /differentchildnode > < /parentnode > " XmlDocument = xml.dom.minidom.parseString ( xmlString ) ;
tilgang element noder og barn noder
med XML-elementer er representert som noder . For å få tilgang til et element i XML-dokumentet , må du søke etter det ved navn med metoden " getElementsByTagName , " f.eks :
searchresults = getElementsByTagName ( " ExampleNode ")
Denne linjen av koden returnerer en NodeList . For å få et enkelt element node, kan du bare ringe : en
myNode = searchresults [ 0 ] Hotell
noder kan inneholde underordnede noder . Du kan få en liste over underordnede noder gitt en referanse til en overordnet node, f.eks:
myChildNodes = myNode.childNodes
Data og attributter
å få tilgang til dataene i et element åpning og lukking koder, må du få tilgang til " data "-feltet i node objektet . For eksempel, hvis en node som heter " myNode " representerte XML teksten " sampletext < /ExampleNode >" i et dokument , så du kan trekke ut ordet " sampletext " ved å referere til " . myNode.data " For å få tilgang til attributtene til den noden , ville du må først få tilgang til NamedNodeMap av attributtene som følger : en attrList = myNode.attributes
fra den listen, trekke deg navnene og verdiene til attributtene : en
minliste = [ ] for i in range ( attrList.length ) : myList.append ( attrList.item ( i) . navn + '= ' + attrList.item ( i) verdi ) print . "; " join ( minliste )
Skrive XML Code
Du kan. skrive en Node objekt til noen " skrivbar " objekt ved hjelp av funksjonen " writexml . " Dette inkluderer skrivbare filer. Et eksempel er som følger : en
destinationFile = open ( " samplewrite.xml ", " w" ) doc.writexml ( destinationFile ) destinationFile.close ( )
Du kan også skrive ut XML-dokument som en streng ved hjelp av funksjonen " toxml " eller " toprettyxml , " f.eks : en
print doc.toxml ( )
eller
print doc.toprettyxml ( )
funksjonen " toprettyxml " bruker mellomrom og innrykk for å gjøre XML mer lesbar for mennesker.