Python verwendet das Document Object Model zur Speicherung und Bearbeitung von XML-Elementen . Es analysiert automatisch XML-Code und erstellt ein Document-Objekt , um es zu modellieren , die XML-Knoten enthält . Die XML-Bibliothek kann dann durch das Dokument Schritt , um verschiedene Elemente und Attribute zu finden. Sie müssen die Bibliothek importieren " xml.dom.minidom " , um Python DOM XML Verarbeitungs-Bibliothek zugreifen . Zugreifen auf und Lesen einer XML- Datei
Python XML- Bibliothek kann automatisch analysieren XML -Textdateien oder Zeichenfolgen , die ein XML-Dokument darzustellen. Hier ist ein Beispiel dafür, wie eine XML- Textdatei zu analysieren und speichern Sie das Ergebnis als Python- Document-Objekt :
xmlFile = open ( " sample.xml " ) = xmlDocument xml.dom.minidom.parse ( xmlFile )
Wenn Sie einen XML-String analysieren wollen, müssen Sie die " parseString "-Funktion .
xmlString = " < childNode /> einem anderen Knoten " xmlDocument = xml.dom.minidom.parseString ( xmlString );
Zugreifen Element Nodes und Child Nodes
XML-Elemente werden als Knoten dargestellt . Um ein Element in dem XML-Dokument zuzugreifen, müssen Sie für ihn nach dem Namen suchen mit der Methode " getElementsByTagName ", zB :
searchResults = getElementsByTagName ( " ExampleNode " )
Diese Linie Code liefert einen NodeList . Um ein einzelnes Element Knoten zu bekommen , können Sie einfach anrufen:
myNode = searchResults [0]
Knoten können untergeordnete Knoten enthalten . Sie können eine Liste der untergeordneten Knoten gegeben einen Verweis auf einen übergeordneten Knoten , z. B.:
myChildNodes = myNode.childNodes
Daten und Attribute
Um die Daten innerhalb eines Elements öffnenden und schließenden Tags enthaltenen Informationen zuzugreifen , müssen Sie auf das Feld "Data" des Knotens Objekt . Zum Beispiel, wenn ein Knoten mit dem Namen " myNode " vertreten den XML-Text " Mustertext " in einem Dokument , dann könnte man extrahieren das Wort " Mustertext " durch Verweis auf " . myNode.data " um die Attribute dieses Knotens zuzugreifen, müssen Sie zuerst auf die NamedNodeMap der Attribute wie folgt:
attrList = myNode.attributes
Dann aus dieser Liste , extrahieren Sie die Namen und Werte der Attribute:
myList = [] for i in range ( attrList.length ) : myList.append ( attrList.item ( i) . name + '=' + attrList.item ( i) -Wert) Druck . ";" join ( myList )
Schreiben von XML -Code
Sie können . schreib eine Node-Objekt in jedem " beschreibbar " Objekt mit der Funktion " WriteXml . " Dazu gehören beschreibbare Dateien . Ein Beispiel hierfür ist wie folgt:
DestinationFile = open ( " samplewrite.xml ", " w" ) doc.writexml ( DestinationFile ) destinationFile.close ()
Sie auch ausdrucken können die XML-Dokument als String mit der Funktion " toxml " oder " toprettyxml ", zB :
Druck doc.toxml ()
oder in
Druck doc.toprettyxml ()
die Funktion " toprettyxml " nutzt Räume und Einzüge , um die XML besser lesbar für den Menschen.