Python xml elementTree

Python xml elementTree
Nous pouvons générer, modifier et analyser les documents XML à l'aide de la bibliothèque Python utile ElementTree. On pense qu'un arbre représente l'ensemble du document. Dans cet arbre, l'élément représente un seul nœud ou branche. Dans XML, la lecture ou l'écriture sur ou depuis des fichiers se fait principalement au niveau de l'élément, tandis que l'interaction avec les éléments est basé sur le niveau d'élément. Le module Python ElementTree sera utilisé pour modifier et ajouter des données aux fichiers XML alors que nous apprenons à analyser XML avec Python dans ce tutoriel. Nous étudierons également les expressions XPath et les arbres XML afin de comprendre les données.

Le cadre XML en fait l'utiliser pour comprendre les données dynamiquement. Il est largement soucieux de créer des pages Web avec des données qui suit un format prédéterminé. XML, également appelé document XML, est utilisé pour générer une page. Une structure simple et hiérarchique ressemblant à un arbre est produite à l'aide de XML. L'objectif principal de cet article est de vous montrer comment lire et comprendre les fichiers à l'aide de Python.

Les exemples de données pour cette partie seront tirés du document XML suivant:

D'après ce que vous avez lu dans le fichier XML, vous pouvez voir que l'élément racine est appelé «client» qui contient tous les autres éléments, tels que les «clients», qui sont considérés comme des «éléments enfants» ou des «sous-éléments."Il convient de noter que ces composants enfants ont la capacité de parent d'autres éléments enfants, qui sont appelés« éléments sous-enfant »et agissent comme leurs propres parents.

Vous observerez, par exemple, que l'élément client contient quelques «attributs», tels que les identifiants, les noms et les factures, qui fournissent encore plus de détails. Maintenant, nous allons lire ces informations de fichier XML en utilisant les différents codes ci-dessous.

Exemple 1:
Nous pouvons obtenir le nom de la balise racine du fichier XML spécifié dans Python en utilisant la fonction Getroot du module ElementTree.

Importer du XML.eree.ElementTree comme ET
file_root = et.Parse ('Client.xml ').getroot ()
file_tag = file_root.étiqueter
print (file_tag)

Nous avons inclus le module ElementTree qui se voit attribuer un alias comme ET. Ensuite, nous avons déclaré un objet comme fichier_root. À l'intérieur de cet objet, nous avons une fonction d'analyse qui prend le nom du fichier XML. En même temps, nous avons appelé la méthode Getroot pour obtenir le nom de la racine. Nous avons créé un autre objet comme fichier_tag où nous avons appelé la balise avec l'objet file_root. Le résultat FILE_TAG sera imprimé à l'écran.

Vous pouvez voir le nom de la balise racine générée est des clients comme indiqué dans le fichier XML.

Exemple 2:
Nous pouvons également obtenir la racine des attributs qui existaient dans le fichier XML. Avec cet exemple, nous pouvons accomplir la racine de l'attribut.

Importer du XML.eree.ElementTree comme ET
f_root = et.Parse ('Client.xml ').getroot ()
f_attributes = f_root.attribut
imprimer (f_attributes)
jour = f_attributes.obtenir ('jour')
Imprimer ('jour:', jour)

Comme nous avons inséré le module MODULE ELEMETTREE, nous avons créé un objet comme F_ROOT où nous avons défini le fichier XML dans la méthode d'analyse. Nous avons également défini la méthode Getroot à l'intérieur de cet objet pour obtenir le nom racine. Ensuite, nous avons créé un objet comme f_attributes pour la racine de l'attribut et imprimé sa valeur. Pour obtenir l'attribut particulier, nous avons défini un objet comme un jour et attribué l'attribut à la méthode GET à l'intérieur. L'attribut spécifique sera imprimé par la fonction d'impression.

Les résultats du code ci-dessus sont les suivants:

Exemple 3:
Nous pouvons accéder aux attributs des nœuds enfants de la racine en implémentant le code suivant.

Importer du XML.eree.ElementTree comme ET
racine = et.Parse ('Client.xml ').getroot ()
pour le client en racine.findall ('client'):
attributs = client.attribut
Imprimer (attributs)
type = attributs.get ('type')

La première étape du code est la même que le code spécifié ci-dessus. Ensuite, nous avons une boucle pour les récapitules sur chaque nœud enfant «client». Après cette itération, nous avons créé un attribut variable qui obtient tous les nœuds des attributs. Nous avons récupéré le type des attributs en attribuant un «type» à l'intérieur de la méthode GET.

Les types des attributs dans les nœuds enfants sont affichés comme suit:

Exemple 4:
L'exemple est d'accéder au nœud de l'élément à partir du fichier XML sans connaître le nom de la balise par rapport à l'élément de nœud correspondant.

Importer du XML.eree.ElementTree comme ET
racine = et.Parse ('Client.xml ').getroot ()
pour le client en racine.findall ('client'):
id = client.trouver ('id').texte
imprimer ('id:', id)
nom = client.trouver ('nom').texte
print ('nom:', nom)
facture = client.trouver («projet de loi»).texte
Print ('Bill:', Bill)

Commencez par la boucle FOR, nous avons itéré la boucle pour chaque nœud dans le fichier XML. Ensuite, nous obtenons l'ID d'élément, le nom et la facture en les transmettant à la méthode Find et en imprimant chaque élément avec sa valeur.

Les nœuds d'élément obtenus à partir du code ci-dessus sont les suivants:

Exemple 5:
Voyons le dernier exemple où nous accédons au nom de la balise racine du fichier XML client.

Importer du XML.eree.ElementTree comme ET
racine = et.Parse ('Client.xml ').getroot ()
pour le client en racine.findall ('client'):
Pour les articles du client:
i_name = éléments.étiqueter
i_value = client.trouver (articles.étiqueter).texte
print (i_name, ':', i_value)

De la boucle pour d'abord, nous avons itéré sur chacun des nœuds. Ensuite, nous avons de nouveau utilisé la boucle pour obtenir tous les éléments du nœud client. Les éléments sont accessibles en appelant l'objet Tag et en le transmettant à la méthode Find.

Toute la balise d'article de la balise client s'affiche comme suit:

Conclusion

Un package Python essentiel appelé ElementTree permet de traverser et de lire des documents XML. Le document XML est divisé en une structure d'arbre gérable à l'aide d'ElementTree. En cas de doute, imprimez-le en utilisant l'impression de commande d'impression pratique (et.toString (root, coding = "utf8").décoder ('utf8')) pour examiner tout le document XML à la fois. Lors de la modification, de l'ajout ou de l'élimination d'un XML, la vérification est utile. L'utilisation de ElementTree et XMLS a plusieurs considérations importantes. Les balises définissent quelles valeurs doivent être décrites dans la structure des arbres et aider à la construire. La capacité de lire et d'écrire dans un XML peut être facilitée par une structuration intelligente. La relation parent-enfant doit toujours être montrée dans les supports d'ouverture et de fermeture sur les balises. Lors de la validation des étiquettes ou de la permission des désignations booléennes, les attributs fournissent d'autres instructions.