Python XML Parsing : Un guide complet
XML (Extensible Markup Language) est un langage populaire utilisé pour le stockage et le transfert de données. Python fournit plusieurs bibliothèques pour analyser le XML. Dans ce guide, nous allons vous présenter deux bibliothèques Python intégrées pour analyser XML : xml.dom.minidom et xml.etree.ElementTree.
Étape 1 : Analyse XML à l'aide de xml.dom.minidom
La bibliothèque xml.dom.minidom vous permet d'analyser des documents XML avec Python. Pour analyser une chaîne XML, utilisez la méthode parseString :
from xml.dom.minidom import parseString
xml_string = """
<library>
<book>
<title>The Great Gatsby</title>
<author>F. Scott Fitzgerald</author>
<year>1925</year>
</book>
</library>
"""
document = parseString(xml_string)
print(document.getElementsByTagName("title")[0].firstChild.nodeValue)
Dans le code ci-dessus, nous analysons la chaîne XML et extrayons le titre du livre.
Étape 2 : Analyse XML à l'aide de xml.etree.ElementTree
La bibliothèque xml.etree.ElementTree (ET) fournit une manière plus pythonique d'analyser XML. Pour analyser une chaîne XML, utilisez la méthode fromstring :
import xml.etree.ElementTree as ET
xml_string = """
<library>
<book>
<title>The Great Gatsby</title>
<author>F. Scott Fitzgerald</author>
<year>1925</year>
</book>
</library>
"""
root = ET.fromstring(xml_string)
for child in root.iter():
if child.text.strip():
print(child.text)
Dans le code ci-dessus, nous analysons la chaîne XML et imprimons le texte de chaque élément.
Étape 3 : Analyse des fichiers XML
Minidom et ElementTree peuvent tous deux analyser du XML à partir de fichiers à l'aide de la méthode parse :
# Using minidom
from xml.dom.minidom import parse
document = parse("sample.xml")
print(document.getElementsByTagName("title")[0].firstChild.nodeValue)
# Using ElementTree
import xml.etree.ElementTree as ET
root = ET.parse("sample.xml")
for child in root.iter():
if child.text.strip():
print(child.text)
Le code ci-dessus montre comment analyser un fichier XML et imprimer certains éléments.
Étape 4 : Enregistrement des données XML dans un fichier CSV
Après avoir analysé le XML, vous pouvez enregistrer les données dans un fichier CSV à l'aide de la bibliothèque pandas :
import pandas as pd
parsed_dict = {
"title": ["The Great Gatsby"],
"author": ["F. Scott Fitzgerald"],
"year": [1925]
}
df = pd.DataFrame(parsed_dict)
df.to_csv("parsed_xml_data.csv", index=False)
Étape 5 : Traitement des données XML non valides
La bibliothèque Beautiful Soup peut analyser des documents XML qui peuvent contenir des erreurs :
from bs4 import BeautifulSoup
invalid_xml = """
<root>
<person>
<name>John Doe</name>
<message>This is a message & an invalid XML example.</message>
</person>
</root>
"""
soup = BeautifulSoup(invalid_xml, features="lxml-xml")
print(soup.prettify())
Beautiful Soup peut traiter des documents XML non valides, mais elle est plus lente que d'autres bibliothèques d'analyse XML.
Commentaires (0)
Il n'y a pas encore de commentaires ici, vous pouvez être le premier !