Análise de XML em Python: Um guia abrangente
XML (Extensible Markup Language) é uma linguagem popular usada para armazenar e transferir dados. O Python fornece várias bibliotecas para analisar XML. Neste guia, apresentaremos a você duas bibliotecas Python incorporadas para analisar XML: xml.dom.minidom e xml.etree.ElementTree.
Etapa 1: Análise de XML usando xml.dom.minidom
A biblioteca xml.dom.minidom permite que você analise documentos XML com Python. Para analisar uma cadeia de caracteres XML, use o método 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)
No código acima, analisamos a string XML e extraímos o título do livro.
Etapa 2: Análise de XML usando xml.etree.ElementTree
A biblioteca xml.etree.ElementTree (ET) oferece uma maneira mais pitônica de analisar XML. Para analisar uma cadeia de caracteres XML, use o método 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)
No código acima, analisamos a cadeia de caracteres XML e imprimimos o texto de cada elemento.
Etapa 3: Analisar arquivos XML
Tanto o minidom quanto o ElementTree podem analisar XML de arquivos usando o método 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)
O código acima demonstra como analisar um arquivo XML e imprimir alguns elementos.
Etapa 4: Salvando dados XML em um arquivo CSV
Depois de analisar o XML, você pode salvar os dados em um arquivo CSV usando a biblioteca 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)
Etapa 5: Manipulação de XML inválido
A biblioteca Beautiful Soup pode analisar documentos XML que podem conter erros:
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())
A Beautiful Soup pode lidar com XML inválido, mas é mais lenta do que outras bibliotecas de análise de XML.
Comentários (0)
Ainda não há comentários aqui, você pode ser o primeiro!