Analizar un archivo xml y almacenarlo en una base de datos

¿Existe una forma genérica / automática en R o en python para analizar archivos xml con sus nodos y atributos, generar tablas mysql automáticamente para almacenar esa información y luego rellenar esas tablas?

Respecto a

¿Existe una forma genérica / automática en R para analizar los archivos xml con sus nodos y atributos, generar automáticamente tablas mysql para almacenar esa información y luego rellenar esas tablas?

La respuesta es un buen viejo, , al menos en R.

El paquete XML para R puede leer documentos XML y devolver tipos de data.frame R en una sola llamada usando la función xmlToDataFrame() .

Y el paquete RMySQL puede transferir los objetos data.frame a la base de datos en un solo comando, incluida la creación de tablas si es necesario, utilizando la función dbWriteTable() definida en el backend DBI común para R y provista para MySQL por RMySQL .

En resumen: dos líneas pueden hacerlo, así que puede escribirse fácilmente una nueva función auxiliar que lo haga junto con una cantidad proporcional de comprobación de errores.

Son tres operaciones separadas: análisis, creación de tablas y llenado de datos. Puedes hacer las tres cosas con python, pero no hay nada “automático” al respecto. No creo que sea tan fácil.

Por ejemplo, XML es jerárquico y SQL es relacional, basado en conjuntos. No creo que siempre sea tan fácil obtener un buen esquema relacional para cada flujo XML que pueda encontrar.

Existe el paquete XML para leer XML en R, y el paquete RMySQL para escribir datos de R en MySQL.

Entre los dos hay mucho trabajo. XML supera el scope de un RDBMS como MySQL, por lo que algo que pudiera manejar cualquier XML lanzado sería ridículamente complejo o trivialmente inútil.

Hacemos algo como esto en el trabajo a veces, pero no en python. En ese caso, cada uso requiere que se escriba un progtwig personalizado. Solo tenemos un analizador SAX disponible. Usar un decodificador XML para obtener un diccionario / hash en un solo paso ayudaría mucho.

Como mínimo, tendría que decirle qué tags se asignan a qué tablas y campos, ninguna biblioteca preexistente puede saber que …