Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Maîtriser le Parsing XML en Python : Guide Pratique avec Minidom et ElementTree

Qu'est-ce que XML ?

XML, ou eXtensible Markup Language, a été créé pour stocker et transporter des données structurées efficacement. Il est largement utilisé pour échanger des informations entre systèmes et applications.

Python fournit des bibliothèques robustes pour parser et manipuler des documents XML. Cependant, pour parser un fichier XML, le document entier doit d'abord être chargé en mémoire. Dans ce tutoriel nous démontrerons comment utiliser les modules xml.dom.minidom et xml.etree.ElementTree de Python pour lire, inspecter et modifier des fichiers XML.

À la fin de ce guide vous saurez :

Parsing XML avec minidom

Nous commençons avec un fichier XML exemple contenant des données d'employés. Le fichier ressemble à ceci :

Étape 1) Le fichier liste le prénom, nom, domicile et domaines d'expertise d'un employé tels que SQL, Python, Testing, et Business.

Maîtriser le Parsing XML en Python : Guide Pratique avec Minidom et ElementTree

Étape 2) Après chargement du document, nous afficherons le nodeName de l'élément racine et le tagName de son premier enfant. Ce sont des propriétés standards d'un objet DOM.

Maîtriser le Parsing XML en Python : Guide Pratique avec Minidom et ElementTree

Note : Les valeurs nodeName et tagName suivent les conventions de nommage XML DOM, qui peuvent être unfamiliar si vous êtes nouveau dans XML.

Étape 3) Nous pouvons extraire une liste de toutes les compétences du document. Le code suivant montre comment rassembler les noms de compétences dans un ensemble.

Maîtriser le Parsing XML en Python : Guide Pratique avec Minidom et ElementTree

Créer un Nouveau Nœud XML

Ajouter de nouvelles données à une structure XML existante est simple avec minidom. Dans notre exemple, nous ajouterons un nouveau nœud expertise intitulé « BigData ».

  1. Créer le nouvel élément avec createElement("expertise") et définir son attribut name.
  2. Ajouter le nouvel élément à l'enfant racine du document.

Maîtriser le Parsing XML en Python : Guide Pratique avec Minidom et ElementTree

Exemple de Parser XML

Exemple Python 2

import xml.dom.minidom
def main():
    # Charger et parser le fichier XML
    doc = xml.dom.minidom.parse("Myxml.xml")
    # Afficher infos racine
    print doc.nodeName
    print doc.firstChild.tagName
    # Lister entrées expertise existantes
    expertise = doc.getElementsByTagName("expertise")
    print "%d expertise:" % expertise.length
    for skill in expertise:
        print skill.getAttribute("name")
    # Ajouter nouvelle entrée expertise
    newexpertise = doc.createElement("expertise")
    newexpertise.setAttribute("name", "BigData")
    doc.firstChild.appendChild(newexpertise)
    print " "
    # Vérifier ajout
    expertise = doc.getElementsByTagName("expertise")
    print "%d expertise:" % expertise.length
    for skill in expertise:
        print skill.getAttribute("name")
if __name__ == "__main__":
    main()

Exemple Python 3

import xml.dom.minidom
def main():
    # Charger et parser le fichier XML
    doc = xml.dom.minidom.parse("Myxml.xml")
    # Afficher infos racine
    print(doc.nodeName)
    print(doc.firstChild.tagName)
    # Lister entrées expertise existantes
    expertise = doc.getElementsByTagName("expertise")
    print("%d expertise:" % expertise.length)
    for skill in expertise:
        print(skill.getAttribute("name"))
    # Ajouter nouvelle entrée expertise
    newexpertise = doc.createElement("expertise")
    newexpertise.setAttribute("name", "BigData")
    doc.firstChild.appendChild(newexpertise)
    print(" ")
    # Vérifier ajout
    expertise = doc.getElementsByTagName("expertise")
    print("%d expertise:" % expertise.length)
    for skill in expertise:
        print(skill.getAttribute("name"))
if __name__ == "__main__":
    main()

Parsing XML avec ElementTree

ElementTree est une API légère qui rend la manipulation XML simple et pythonique. Elle est idéale pour lire de gros fichiers XML sans la surcharge d'un DOM complet.

Nos données XML exemple :

<data>
  <items>
    <item name="expertise1">SQL</item>
    <item name="expertise2">Python</item>
  </items>
</data>

Lecture XML avec ElementTree :

D'abord, importez le module :

import xml.etree.ElementTree as ET

Parsez le fichier et obtenez l'élément racine :

tree = ET.parse('items.xml')
root = tree.getroot()

Voici le code complet pour afficher tous les noms de compétences :

import xml.etree.ElementTree as ET
tree = ET.parse('items.xml')
root = tree.getroot()
print('Données Expertise :')
for elem in root:
    for subelem in elem:
        print(subelem.text)

Sortie :

Données Expertise :
SQL
Python

Résumé

Les modules xml.dom.minidom et xml.etree.ElementTree de Python permettent aux développeurs de charger, analyser et modifier des documents XML efficacement. Alors que minidom fournit une représentation DOM complète adaptée aux manipulations complexes, ElementTree offre une alternative légère pour parsing et extraction simples.

Python

  1. Entrées/sorties de fichiers Python : maîtriser les opérations sur les fichiers
  2. Lecture de Fichiers en Java avec BufferedReader – Guide Pratique avec Exemples
  3. Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques
  4. Python len() : Guide pratique pour mesurer la longueur des objets
  5. Maîtriser yield en Python : générateur vs return – Guide pratique
  6. Python Counter dans collections : comptage efficace, mise à jour et opérations arithmétiques
  7. Maîtriser enumerate() en Python : boucler avec indices pour listes, tuples, chaînes et dictionnaires
  8. Vérifier l'existence de fichiers et répertoires en Python – Guide pratique
  9. Python JSON : encodage, décodage et gestion de fichiers – Guide pratique