Qu'est-ce que XML ? XML signifie Extensible Markup Language, qui nécessite de stocker des données structurées et de regrouper tous les éléments. Dans le langage de balisage XML, vous pouvez créer des balises avec n'importe quel nom. Les exemples les plus populaires de XML - Plans de site et flux RSS.
Exemple de fichier XML :
<breakfast_menu> <food> <name>Belgian Waffles</name> <price>.95</price> <description>Two of our famous Belgian Waffles with plenty of real maple syrup</description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>.95</price> <description>Light Belgian waffles covered with strawberries and whipped cream</description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>.95</price> <description>Light Belgian waffles covered with an assortment of fresh berries and whipped cream</description> <calories>900</calories> </food> <food> <name>French Toast</name> <price>.50</price> <description>Thick slices made from our homemade sourdough bread</description> <calories>600</calories> </food> <food> <name>Homestyle Breakfast</name> <price>.95</price> <description>Two eggs, bacon or sausage, toast, and our ever-popular hash browns</description> <calories>950</calories> </food> </breakfast_menu>
Dans cet exemple, le fichier contient la balise globale breakfast_menu, qui inclut les catégories d'aliments, et chaque catégorie d'aliments comprend la balise nom, prix, description et calories.
Maintenant, nous commençons à apprendre à travailler avec la bibliothèque XML et Python Requests. Nous devons d’abord préparer notre environnement de travail.
Pour créer un nouveau projet et un environnement virtuel, installez le package python3-virtualenv. Il faut des exigences de séparation de chaque projet. Installation sous Debian/Ubuntu :
sudo apt install python3 python3-virtualenv -y
Créer un dossier de projet :
mkdir my_project cd my_project
Créez un environnement virtuel Python avec le dossier nommé env :
python3 -m venv env
Activer l'environnement virtuel :
source env/bin/activate
Installer les dépendances de PIP :
pip3 install requests
Commençons à écrire du code.
Créez le fichier main.py et insérez le code ci-dessous :
import requests import xml.etree.ElementTree as ET request = requests.get('https://www.w3schools.com/xml/simple.xml') root = ET.fromstring(request.content) for item in root.iter('*'): print(item.tag)
Cet extrait de code nous aide à trouver toutes les balises internes.
La sortie de ce code :
(env) user@localhost:~/my_project$ python3 main.py breakfast_menu food name price description calories food name price description calories food name price description calories food name price description calories food name price description calories
Maintenant, nous écrivons du code pour obtenir les valeurs des éléments internes. Ouvrez le fichier main.py et remplacez le code précédent par ceci :
import requests import xml.etree.ElementTree as ET request = requests.get('https://www.w3schools.com/xml/simple.xml') root = ET.fromstring(request.content) for item in root.iterfind('food'): print(item.findtext('name')) print(item.findtext('price')) print(item.findtext('description')) print(item.findtext('calories'))
Nous avons reçu le résultat suivant :
(env) user@localhost:~/my_project$ python3 main.py Belgian Waffles .95 Two of our famous Belgian Waffles with plenty of real maple syrup 650 Strawberry Belgian Waffles .95 Light Belgian waffles covered with strawberries and whipped cream 900 Berry-Berry Belgian Waffles .95 Light Belgian waffles covered with an assortment of fresh berries and whipped cream 900 French Toast .50 Thick slices made from our homemade sourdough bread 600 Homestyle Breakfast .95 Two eggs, bacon or sausage, toast, and our ever-popular hash browns 950
À la dernière étape, nous embellissons les données de sortie pour les rendre plus faciles à lire :
import requests import xml.etree.ElementTree as ET request = requests.get('https://www.w3schools.com/xml/simple.xml') root = ET.fromstring(request.content) for item in root.iterfind('food'): print('Name: {}. Price: {}. Description: {}. Calories: {}'.format(item.findtext('name'), item.findtext('price'), item.findtext('description'), item.findtext('calories')))
Ici sortie :
(env) user@localhost:~/my_project$ python3 main.py Name: Belgian Waffles. Price: .95. Description: Two of our famous Belgian Waffles with plenty of real maple syrup. Calories: 650 Name: Strawberry Belgian Waffles. Price: .95. Description: Light Belgian waffles covered with strawberries and whipped cream. Calories: 900 Name: Berry-Berry Belgian Waffles. Price: .95. Description: Light Belgian waffles covered with an assortment of fresh berries and whipped cream. Calories: 900 Name: French Toast. Price: .50. Description: Thick slices made from our homemade sourdough bread. Calories: 600 Name: Homestyle Breakfast. Price: .95. Description: Two eggs, bacon or sausage, toast, and our ever-popular hash browns. Calories: 950
Matériaux sources :
Exemple de fichier XML extrait de W3Schools.
Mes messages sont-ils utiles ? Vous pouvez me soutenir sur Patreon.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!