Python utilise le modèle objet de document pour stocker et manipuler des éléments XML . Il analyse automatiquement le code XML et crée un objet Document à modeler , qui contient des nœuds XML. La bibliothèque XML peut ensuite passer le document pour trouver différents éléments et attributs . Vous devez importer la bibliothèque " xml.dom.minidom " afin d'accéder à la bibliothèque de traitement XML DOM de Python. L'accès et la lecture de la bibliothèque XML d'un fichier XML
Python peut analyser automatiquement des fichiers XML ou des chaînes de caractères qui représentent un document XML. Voici un exemple de la façon d' analyser un fichier texte XML et stocker le résultat dans un objet Document Python :
xmlFile = open ( " sample.xml " ) xmlDocument = xml.dom.minidom.parse ( xmlFile )
Si vous souhaitez analyser une chaîne de XML , vous avez besoin de la fonction " parseString " .
xmlString = " < childNode /> Un autre nœud " xmlDocument = xml.dom.minidom.parseString ( xmlString ) ;
accès aux nœuds Element et nœuds enfants
éléments XML sont représentés comme des noeuds . Pour accéder à un élément dans un document XML , vous devez chercher par nom avec la méthode « getElementsByTagName », par exemple :
searchResults = getElementsByTagName ( " ExampleNode " )
ligne de code renvoie une NodeList . Pour obtenir un seul nœud d'élément , vous pouvez simplement appeler :
myNode = searchResults [0]
nœuds peuvent contenir des nœuds enfants. Vous pouvez obtenir une liste de nœuds enfants avec une référence à un nœud parent , par exemple:
myChildNodes = myNode.childNodes
données et les attributs
Pour accéder aux données contenues dans l'ouverture d'un élément et la fermeture des balises , vous devez accéder au champ "data" de l'objet nœud. Par exemple, si un nœud nommé " myNode " représente le texte XML " sampleText " dans un document, alors vous pourriez extraire le mot " d'exemple" en référençant " . myNode.data " pour accéder aux attributs de ce noeud , vous devez d'abord accéder à la NamedNodeMap des attributs comme suit :
attrlist = myNode.attributes
Puis à partir de cette liste, vous extrayez les noms et les valeurs des attributs :
maListe = [] for i in range ( attrList.length ) : myList.append ( attrList.item ( i) . nom + '=' + attrList.item ( i) valeur ) print . ";" join ( maListe )
écriture XML code
Vous le pouvez. écrire un objet Node à n'importe quel objet " écriture " en utilisant la fonction « WriteXml . " Cela inclut les fichiers inscriptibles. Un exemple est la suivante:
DestinationFile = open ( " samplewrite.xml ", " w" ) doc.writexml ( DestinationFile ) destinationFile.close ()
Vous pouvez également imprimer le document XML sous forme de chaîne en utilisant la fonction " toxml " ou " toprettyxml », par exemple :
impression doc.toxml () de
ou
impression doc.toprettyxml ()
la fonction " toprettyxml " utilise les espaces et les tirets pour rendre le XML plus lisible pour les humains.