À l’aide de XML sur le Raspberry Pi avec Python (2 / 3 étapes)

Étape 2: L’analyse XML avec Python

Qu’entendons-nous par l’analyse ?

L’analyse se réfère à l’analyse syntaxique de l’entrée XML en ses composantes afin de faciliter le code d’exécution basé sur le résultat de l’analyse. En d’autres termes, le programme est « lire » le code XML pour rechercher les valeurs qu’il recherche, faire attention à la syntaxe appropriée et forme. Syntaxe XML inclut une hiérarchie imbriquée d’éléments. Cela signifie que chaque niveau de la hiérarchie est inclus comme un sous-ensemble entièrement clos du niveau précédent. Dans notre exemple ci-dessous, chaque objet est complètement enfermé (« imbriqués ») dans le. Vous pouvez étendre cette imbrication aussi loin que vous le souhaitez. Lorsque vous écrivez l’analyse de code de cette imbrication habituellement des résultats pour les boucles en Python itération sur tous les objets à un niveau dans la hiérarchie.

Options pour l’analyse XML en Python

Il y a beaucoup de paquets différents pour l’analyse XML en Python. Nous allons utiliser xml.etree.ElementTree. ElementTree est un simple pour employer, rapide bibliothèque d’arborescence XML construit en Python. Il est un peu limité en fonctionnalités, mais pour XML simple message l’analyse il est difficile à battre.

Ce qu’il faut savoir sur ElementTree ? Très peu de commandes est nécessaires pour analyser le XML simple. Ces quelques seront illustrés ci-dessous.

Code exemple Python

Configurer les données ElementTree

Après l’importation du code ElementTree et l’écriture du XML dans une chaîne (Remarque : vous cela pourriez lire depuis un fichier ou d’une requête web), nous avons tout d’abord configurer la racine de la hiérarchie XML. La racine de ce code XML est.

Parcourir la liste

Nous savons en regardant le fichier XML, qui se compose d’un certain nombre d’objets. Nous utilisons une boucle for pour ce faire (chaque élément à l’intérieur de la racine est un objet) à l’aide de la ElementTree commande findall (trouver tous les objets XMLCOMMAND dans ce cas).

Analyser les éléments individuels

À l’intérieur de la boucle for, nous maintenant analyser les différents éléments de l’objet. Ici, nous utilisons la commande d’élément ElementTree avec l’attribut de texte. Notez que les éléments ne sont pas dans le même ordre ! XML ne se soucie pas si les éléments du même niveau sont dans un ordre particulier. En outre, il n’est pas garanti que le premier élément sera la première récupérée par ElementTree.

Éléments attendus peuvent manquer sur objets. Dans le cas d’éléments manquants en Python (à l’aide de ElementTree) vous devez absolument utiliser un if instruction de traiter l’élément manquant. Si vous

ne risquez pas de puis vous qui provoque une exception de Python s’ils naviguent sur la valeur retournée comme ElementTree retourne un zéro et pas une valeur valide. Si vous utilisez des chaînes comme valeurs, vous voudrez probablement définir votre variable de chaîne un "" (chaîne vide) plutôt que de lui permettant d’être définie sur un Python None. Il s’agit d’une erreur très commune en écrivant du code ElementTree.

Utilisations de XML dans des programmes Python

XML est largement utilisé dans l’industrie du logiciel, allant de messages HL7 en soins de santé, Simple Object Access Protocol (SOAP) client-serveur d’échange d’informations, et même XML est utilisée dans les fichiers Microsoft Word. Les principaux avantages de l’utilisation de XML sont Croix l’utilisation du système, lisibilité, évolutivité et la possibilité de modifier le code XML dans un éditeur de texte.

Les programmeurs utilisent souvent XML pour lire et écrire des fichiers de configuration sur le disque, le débogage de l’excès de vitesse et le développement. Cela rend plus facile à mettre en place des suites de tests pour les programmes que vous pouvez lire les mêmes structures XML à partir du disque que vous envoyiez à travers l’Internet dans une demande web. L’extensibilité du langage XML vous permet d’ajouter nouveaux paramètres et structures dans vos programmes Python tout en conservant la compatibilité en arrière. Troisième partie de cette série va montrer comment cela se fait en Python.

Conclusion

XML est verbeux et utilise ainsi un peu d’espace disque pour stocker et de mémoire pour traiter. Dans le monde de la Raspberry Pi et sur Internet cela généralement n’importe pas. Toutefois, dans les microcontrôleurs comme l’Arduino, espace mémoire RAM est à une prime, si un protocole plus simple et plus « dense » tels que JSON est plus approprié. Si l’espace disque est à une prime, XML compressera extrêmement bien à cause de toute la répétition des mots clés et descriptions.

XML est facile à lire, à analyser et à déboguer pour débutants et des programmeurs chevronnés aussi bien.

Articles Liés

À l’aide de Docker sur le Raspberry Pi

À l’aide de Docker sur le Raspberry Pi

Notre Makerspace a récemment introduit un système de télédéverrouillage avec breloques RFID qui est surveillé par un Pi de framboise. Rassembler le matériel a été un processus très simple mais c'est le logiciel de contrôle de l'autorisation qui mérit
Obtenir des prix Stock sur Raspberry Pi (avec Python)

Obtenir des prix Stock sur Raspberry Pi (avec Python)

Je travaille sur quelques nouveaux projets portant sur l'obtention de données boursières sur le web, qui vont être enregistrée et affiché via mon Raspberry Pi. Je voulais partager la configuration sur la façon de le faire à l'aide de Python.Ce court
Mount USB Drives sur Wheezy (Raspberry Pi avec émulation Station 2)

Mount USB Drives sur Wheezy (Raspberry Pi avec émulation Station 2)

disons que votre aide Linux Wheezy (s'applique à tout le monde émulation Station en cours d'exécution sur un Pi 2), et vous devez copier les fichiers depuis une clé USB.Wheezy, contrairement à la plupart des saveurs de Linux, n'est pas automatiquemen
Station météo à l’aide de SAMIIO, Arduino et Raspberry Pi

Station météo à l’aide de SAMIIO, Arduino et Raspberry Pi

Cet article illustre l'utilisation de SAMI avec du matériel et des capteurs simples, sur étagère. Plus précisément, nous seront collecte les données climatiques d'un capteur de température faible coût et relayer ces données dans le cloud via SAMI API
Scanner de documents Raspberry Pi avec téléchargement automatique sur Dropbox.

Scanner de documents Raspberry Pi avec téléchargement automatique sur Dropbox.

Avez vous déjà eu inquiet quand vous n'avez pas été en mesure de trouver une loi ou post-it note que vous avez vraiment besoin ? Bien avec ce Scanner de documents Raspberry Pi maintenant vous ne devrez pas ! Toutes vos notes, les reçus et les documen
Jouer l’impérial mars de Star Wars sur Raspberry Pi avec Buzzer Piezo

Jouer l’impérial mars de Star Wars sur Raspberry Pi avec Buzzer Piezo

Nous allons faire du bruit avec Raspberry Pi et un buzzer piezo ! Ce tutoriel fournit des instructions étape par étape comment jouer la marche impériale, également connu sous le thème de la Dart Vader, de Star Wars sur votre facture pro forma de fram
Difficulté de votre carte SD lorsque vous le branchez sur du Raspberry Pi

Difficulté de votre carte SD lorsque vous le branchez sur du Raspberry Pi

Aujourd'hui, je vais vous montrer que la façon de sauver ensemble original espace retour de nos cartes SD.Quand on branche notre carte SD de toutes cartes Raspberry Pi, (quand nous voulons utiliser des cartes SD pour différents endroits au lieu de pl
À l’aide de lentilles sur caméras numériques de Kiev-10/Kiev-15

À l’aide de lentilles sur caméras numériques de Kiev-10/Kiev-15

le Kiev-10 et Kiev-15 sont des caméras très étranges et insolites réalisé et distribué seulement en URSS. La forme étrange du corps est clairement dérivée de la prestigieuse Ziess Contarex, mais ces Kievs ont été parmi les premiers appareils photo à
Serveur LAMP/EMAIL avec login/mot de passe sur un Raspberry PI 2

Serveur LAMP/EMAIL avec login/mot de passe sur un Raspberry PI 2

Ce Instructable vous guidera dans le processus de1. Ajout de Raspbain à la framboise PI 22. installer le serveur LAMP3. Comment installer le serveur de messagerie4. téléchargement et installation du processus de login/mot de passe5. mise en place de
Programmation Raspberry Pi avec CODESYS

Programmation Raspberry Pi avec CODESYS

SalutCette instructable est essentiellement un tutoriel pour obtenir vous aller en utilisant l'environnement CODESYS pour programmer un Pi de framboise.Cette instructable vise non pas tant pour les amateurs, mais plutôt de bourgeonnement contrôle/aut
Raspberry Pi : Lancement Python script au démarrage

Raspberry Pi : Lancement Python script au démarrage

que j'ai travaillé sur mes propres projets de Pi, j'ai en train de découvrir plusieurs petits trucs et astuces de récurage de divers sites Web et données, les essais et optimisation.Alors, voici un autre de mes « Potatoes » Raspberry Pi Instructables
Sans fil Noël minuterie avec Raspberry Pi et Python

Sans fil Noël minuterie avec Raspberry Pi et Python

mise à jour 14/01/2014 : Merci à tous ceux qui ont voté pour ce projet dans le concours de Hacking Hardware ! Impatient de ma plume machine à nouveau.Mise à jour 31/12/2013: à la recherche d'une version plus avancée de ce projet ? Découvrez ma nouvel
Construire des robots Raspberry Pi et Python

Construire des robots Raspberry Pi et Python

le but de ce tutoriel est de vous aider à commencer la programmation avec Python pour contrôler vos robots Arduino avec un PI de framboise. Nous irons sur les bases comme installation et quelques exemples simples pour contrôler votre robot depuis une
Configurer le Raspberry Pi avec écran PiTFT de AdaFruit

Configurer le Raspberry Pi avec écran PiTFT de AdaFruit

Configurer le Raspberry Pi avec affichage PiTFT de Adafruit.Cette instructable utilise un MacBook Pro et spécialisé câble USB au lieu d'un moniteur, le clavier et la souris pour mettre en place un Pi de framboise.Je suis très enthousiasmée par l'affi