Qu'est-ce que XML?
XML signifie eXtensible Markup Language. Il a été conçu pour stocker et transporter de petites et moyennes quantités de données et est largement utilisé pour partager des informations structurées.
Python vous permet d'analyser et de modifier un document XML. Afin d'analyser le document XML, vous devez avoir l'intégralité du document XML en mémoire. Dans ce tutoriel, nous verrons comment nous pouvons utiliser la classe minidom XML en Python pour charger et analyser un fichier XML.
Dans ce tutoriel, nous allons apprendre-
- Comment analyser XML à l'aide de minidom
- Comment créer un nœud XML
- Comment analyser XML à l'aide d'ElementTree
Comment analyser XML à l'aide de minidom
Nous avons créé un exemple de fichier XML que nous allons analyser.
Étape 1) À l'intérieur du fichier, nous pouvons voir le prénom, le nom, la maison et le domaine d'expertise (SQL, Python, Testing et Business)
Étape 2) Une fois que nous avons analysé le document, nous imprimerons le "nom du nœud" de la racine du document et le "nom du premier enfant" . Le nom de variable et le nom de nœud sont les propriétés standard du fichier XML.
- Importez le module xml.dom.minidom et déclarez le fichier à analyser (myxml.xml)
- Ce fichier contient des informations de base sur l'employé comme le prénom, le nom, le domicile, l'expertise, etc.
- Nous utilisons la fonction d'analyse sur le minidom XML pour charger et analyser le fichier XML
- Nous avons la variable doc et doc obtient le résultat de la fonction d'analyse
- Nous voulons imprimer le nom du nœud et le nom de la variable enfant à partir du fichier, nous le déclarons donc dans la fonction d'impression
- Exécutez le code - Il imprime le nom du nœud (#document) à partir du fichier XML et le premier nom de variable enfant (employé) à partir du fichier XML
Remarque :
Nodename et child tagname sont les noms ou propriétés standard d'un dom XML. Dans le cas où vous n'êtes pas familier avec ce type de conventions de dénomination.
Étape 3) Nous pouvons également appeler la liste des balises XML à partir du document XML et l'imprimer. Ici, nous avons imprimé l'ensemble des compétences telles que SQL, Python, Testing et Business.
- Déclarer l'expertise variable, à partir de laquelle nous allons extraire toute l'expertise du nom de l'employé.
- Utilisez la fonction standard dom appelée "getElementsByTagName"
- Cela obtiendra tous les éléments nommés compétence
- Déclarer une boucle sur chacune des balises de compétence
- Exécutez le code - Il donnera une liste de quatre compétences
Comment créer un nœud XML
Nous pouvons créer un nouvel attribut en utilisant la fonction "createElement", puis ajouter ce nouvel attribut ou balise aux balises XML existantes. Nous avons ajouté une nouvelle balise "BigData" dans notre fichier XML.
- Vous devez coder pour ajouter le nouvel attribut (BigData) à la balise XML existante
- Ensuite, vous devez imprimer la balise XML avec de nouveaux attributs ajoutés à la balise XML existante
- Pour ajouter un nouveau XML et l'ajouter au document, nous utilisons le code "doc.create elements"
- Ce code créera une nouvelle balise de compétence pour notre nouvel attribut "Big-data"
- Ajouter cette étiquette de compétence dans le document premier enfant (employé)
- Exécutez le code - la nouvelle balise "big data" apparaîtra avec l'autre liste d'expertise
Exemple d'analyseur XML
Exemple Python 2
importer xml.dom.minidomdef main ():# utiliser la fonction parse () pour charger et analyser un fichier XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# imprimer le noeud du document et le nom de la première balise enfantprint doc.nodeNameimprimer doc.firstChild.tagName# obtenir une liste des balises XML du document et imprimer chacuneexpertise = doc.getElementsByTagName ("expertise")print "% d expertise:"% expertise.lengthpour la compétence en expertise:print skill.getAttribute ("nom")# créer une nouvelle balise XML et l'ajouter dans le documentnewexpertise = doc.createElement ("expertise")newexpertise.setAttribute ("nom", "BigData")doc.firstChild.appendChild (nouvelle expertise)impression " "expertise = doc.getElementsByTagName ("expertise")print "% d expertise:"% expertise.lengthpour la compétence en expertise:print skill.getAttribute ("nom")si nom == "__main__":principale();
Exemple Python 3
importer xml.dom.minidomdef main ():# utiliser la fonction parse () pour charger et analyser un fichier XMLdoc = xml.dom.minidom.parse ("Myxml.xml");# imprimer le noeud du document et le nom de la première balise enfantimpression (doc.nodeName)impression (doc.firstChild.tagName)# obtenir une liste des balises XML du document et imprimer chacuneexpertise = doc.getElementsByTagName ("expertise")print ("% d expertise:"% expertise.length)pour la compétence en expertise:print (skill.getAttribute ("nom"))# créer une nouvelle balise XML et l'ajouter dans le documentnewexpertise = doc.createElement ("expertise")newexpertise.setAttribute ("nom", "BigData")doc.firstChild.appendChild (nouvelle expertise)impression (" ")expertise = doc.getElementsByTagName ("expertise")print ("% d expertise:"% expertise.length)pour la compétence en expertise:print (skill.getAttribute ("nom"))si __name__ == "__main__":principale();
Comment analyser XML à l'aide d'ElementTree
ElementTree est une API pour manipuler XML. ElementTree est le moyen le plus simple de traiter les fichiers XML.
Nous utilisons le document XML suivant comme exemple de données:
- SQL
- Python
Lecture de XML à l'aide d'ElementTree:
nous devons d'abord importer le module xml.etree.ElementTree.
import xml.etree.ElementTree as ET
Maintenant, récupérons l'élément racine:
root = tree.getroot()
Voici le code complet pour lire les données xml ci-dessus
import xml.etree.ElementTree as ETtree = ET.parse('items.xml')root = tree.getroot()# all items dataprint('Expertise Data:')for elem in root:for subelem in elem:print(subelem.text)production:
Expertise Data:SQLPython
Résumé:
Python vous permet d'analyser l'intégralité du document XML en une seule fois et pas seulement une ligne à la fois. Afin d'analyser le document XML, vous devez avoir le document entier en mémoire.
- Pour analyser un document XML
- Importer xml.dom.minidom
- Utilisez la fonction "analyser" pour analyser le document (doc = xml.dom.minidom.parse (nom de fichier);
- Appelez la liste des balises XML à partir du document XML en utilisant le code (= doc.getElementsByTagName ("nom des balises xml")
- Pour créer et ajouter un nouvel attribut dans un document XML
- Utilisez la fonction "createElement"