39. Importando XML
Crea una función que analice (parse) un archivo XML y extraiga información específica de él.
La función debe aceptar el contenido de un XML como una cadena de texto y un "path" (o una serie de etiquetas) que indique qué datos extraer. Devolverá los datos extraídos en una estructura de datos adecuada (por ejemplo, una lista de diccionarios).
xml_ejemplo = """<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="cooking">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="children">
<title lang="en">Harry Potter</title>
<author>J. K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="web">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
"""
def parse_xml_data(xml_string: str, path_elements: list[str]) -> list[dict]:
# Tu código aquí (puedes usar librerías de parsing XML si no modifican estados mutables globales)
pass
# Ejemplo: Extraer títulos y autores de libros
# parse_xml_data(xml_ejemplo, ["book", "title"])
# [
# {"title": "Everyday Italian"},
# {"title": "Harry Potter"},
# {"title": "Learning XML"}
# ]
# parse_xml_data(xml_ejemplo, ["book", "author"])
# [
# {"author": "Giada De Laurentiis"},
# {"author": "J. K. Rowling"},
# {"author": "Erik T. Ray"}
# ]
Ratoncito
Implementa la función para extraer el texto de los elementos dados por el path_elements.
Dragón
Extiende la función para que también extraiga los atributos de los elementos (por ejemplo, el atributo category de <book>). Además, considera el manejo de estructuras XML más complejas donde los elementos pueden estar anidados a diferentes profundidades o con los mismos nombres de etiqueta.
This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.
Support me on Ko-fi