Skip to content

jrosasr/xml2sqlite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Convertidor de Biblias XML a SQLite

Este directorio contiene herramientas para convertir archivos XML de biblias al formato SQLite usado por la aplicación biblia-nexus.

📋 Requisitos

  • Python 3.6 o superior
  • Bash (para el script de conversión por lotes)

🚀 Uso

Conversión Individual

Para convertir un solo archivo XML:

python3 convert.py "<ruta_al_archivo.xml>" [nombre_biblia]

Ejemplos:

# Convertir con nombre automático (usa el nombre del archivo)
python3 convert.py "../Traducción en Lenguaje Actual.xml"

# Convertir con nombre personalizado
python3 convert.py "../Traducción en Lenguaje Actual.xml" "TLA - Traducción en Lenguaje Actual"

Conversión por Lotes

Para convertir todos los archivos XML en el directorio padre:

chmod +x batch_convert.sh
./batch_convert.sh

Este script:

  1. Busca todos los archivos .xml en el directorio padre
  2. Convierte cada uno a formato SQLite
  3. Guarda los resultados en el directorio output/
  4. Muestra un resumen al finalizar

📁 Estructura de Archivos

xml2sqlite/
├── convert.py          # Script principal de conversión
├── batch_convert.sh    # Script para conversión por lotes
├── output/            # Directorio de salida (se crea automáticamente)
└── README.md          # Este archivo

🗄️ Formato de la Base de Datos

El archivo SQLite generado contiene las siguientes tablas:

testament

  • id: ID del testamento (1=Antiguo, 2=Nuevo)
  • name: Nombre del testamento

book

  • id: Número del libro (1-66)
  • testament_id: Referencia al testamento
  • name: Nombre del libro
  • abbreviation: Abreviatura del libro

verse

  • id: ID único del versículo
  • book_id: Referencia al libro
  • chapter: Número del capítulo
  • verse: Número del versículo
  • text: Texto del versículo

metadata

  • key: Clave del metadato
  • value: Valor del metadato

📝 Formato XML de Entrada

El script espera archivos XML con la siguiente estructura:

<?xml version="1.0"?>
<XMLBIBLE>
  <BIBLEBOOK bnumber="1" bname="Génesis">
    <CHAPTER cnumber="1">
      <VERS vnumber="1">Texto del versículo...</VERS>
      <VERS vnumber="2">Texto del versículo...</VERS>
      ...
    </CHAPTER>
    ...
  </BIBLEBOOK>
  ...
</XMLBIBLE>

🔧 Características

  • Limpieza automática de texto: Elimina espacios en blanco innecesarios
  • Generación de abreviaciones: Crea abreviaciones estándar para cada libro
  • Clasificación por testamento: Asigna automáticamente cada libro a su testamento
  • Índices optimizados: Crea índices para búsquedas rápidas
  • Validación de datos: Solo inserta versículos con texto válido

📦 Integración con biblia-nexus

Una vez convertidos los archivos SQLite:

  1. Copia los archivos .sqlite a:

    ../biblia-nexus/assets/biblias/sqlite/
    
  2. Actualiza el archivo availableBibles.ts:

    export const AVAILABLE_BIBLES: AvailableBible[] = [
      {
        id: "TLA",
        name: "Traducción en Lenguaje Actual",
        filename: "TLA - Traducción en Lenguaje Actual.sqlite",
        module: require("../../assets/biblias/sqlite/TLA - Traducción en Lenguaje Actual.sqlite"),
      },
      // ... otras biblias
    ];

⚠️ Notas

  • Los archivos SQLite generados son compatibles con la versión actual de biblia-nexus
  • El script preserva la estructura y numeración original de los libros
  • Los versículos vacíos son omitidos automáticamente
  • Se recomienda usar nombres descriptivos para facilitar la identificación

🐛 Solución de Problemas

Error: "No module named 'xml'"

Python 3 incluye el módulo xml por defecto. Verifica tu instalación de Python.

Error: "Permission denied"

Asegúrate de dar permisos de ejecución al script bash:

chmod +x batch_convert.sh

Los archivos no se encuentran

Verifica que los archivos XML estén en el directorio padre de xml2sqlite/

📄 Licencia

Este script es parte del proyecto biblia-nexus.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors