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

Tutoriel Python XML Parser :lire un exemple de fichier xml (Minidom, ElementTree)

Qu'est-ce que XML ?

XML signifie eXtensible Markup Language. Il a été conçu pour stocker et transporter de petites à 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. Pour analyser un document XML, vous devez avoir le document XML entier en mémoire. Dans ce didacticiel, nous verrons comment utiliser la classe XML minidom en Python pour charger et analyser un fichier XML.

Dans ce tutoriel, nous allons apprendre-

Comment analyser XML en utilisant minidom

Nous avons créé un exemple de fichier XML que nous allons analyser.

Étape 1) À l'intérieur du fichier, on peut voir le prénom, le nom, la maison et le domaine d'expertise (SQL, Python, Testing et Business)


Étape 2) Une fois que nous aurons analysé le document, nous imprimerons le "nom du nœud" de la racine du document et du "premier tagname enfant" . Tagname et nodename sont les propriétés standard du fichier XML.

Remarque :

Nodename et child tagname sont les noms ou propriétés standard d'un dom XML. Au cas où vous ne seriez pas familier avec ce type de conventions de nommage.

É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.

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 cette nouvelle balise aux balises XML existantes. Nous avons ajouté une nouvelle balise "BigData" dans notre fichier XML.

  1. Vous devez coder pour ajouter le nouvel attribut (BigData) à la balise XML existante
  2. Ensuite, vous devez imprimer la balise XML avec de nouveaux attributs ajoutés à la balise XML existante

Exemple d'analyseur XML

Exemple Python 2

import xml.dom.minidom

def main():
# use the parse() function to load and parse an XML file
   doc = xml.dom.minidom.parse("Myxml.xml");
  
# print out the document node and the name of the first child tag
   print doc.nodeName
   print doc.firstChild.tagName
  
# get a list of XML tags from the document and print each one
   expertise = doc.getElementsByTagName("expertise")
   print "%d expertise:" % expertise.length
   for skill in expertise:
     print skill.getAttribute("name")
    
# create a new XML tag and add it into the document
   newexpertise = doc.createElement("expertise")
   newexpertise.setAttribute("name", "BigData")
   doc.firstChild.appendChild(newexpertise)
   print " "

   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():
    # use the parse() function to load and parse an XML file
    doc = xml.dom.minidom.parse("Myxml.xml");

    # print out the document node and the name of the first child tag
    print (doc.nodeName)
    print (doc.firstChild.tagName)
    # get a list of XML tags from the document and print each one
    expertise = doc.getElementsByTagName("expertise")
    print ("%d expertise:" % expertise.length)
    for skill in expertise:
        print (skill.getAttribute("name"))

    # create a new XML tag and add it into the document
    newexpertise = doc.createElement("expertise")
    newexpertise.setAttribute("name", "BigData")
    doc.firstChild.appendChild(newexpertise)
    print (" ")

    expertise = doc.getElementsByTagName("expertise")
    print ("%d expertise:" % expertise.length)
    for skill in expertise:
        print (skill.getAttribute("name"))

if __name__ == "__main__":
    main();

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 :

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

Lecture XML à l'aide d'ElementTree :

nous devons d'abord importer le module xml.etree.ElementTree.

import xml.etree.ElementTree as ET

Récupérons maintenant l'élément racine :

root = tree.getroot()


Voici le code complet pour lire les données xml ci-dessus

import xml.etree.ElementTree as ET
tree = ET.parse('items.xml')
root = tree.getroot()

# all items data
print('Expertise Data:')

for elem in root:
   for subelem in elem:
      print(subelem.text)

sortie :

Expertise Data:
SQL
Python

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 un document XML, vous devez avoir le document entier en mémoire.


Python

  1. E/S de fichier Python
  2. Java BufferedReader :comment lire un fichier en Java avec un exemple
  3. Python String strip() Fonction avec EXAMPLE
  4. Longueur de la chaîne Python | Méthode len() Exemple
  5. Rendement en Python Tutoriel :Exemple de générateur et rendement vs retour
  6. Compteur Python dans les collections avec exemple
  7. Fonction Enumerate() en Python :boucle, tuple, chaîne (exemple)
  8. Python vérifie si le fichier existe | Comment vérifier si un répertoire existe en Python
  9. Python JSON :encoder (dumps), décoder (chargers) et lire le fichier JSON