xml2json
Para transformar los ZIP/XML de licitaciones públicas españolas en un JSON consolidado y filtrado
Script de Node que convierte a JSON los datos XML de la Plataforma de Contratación del Estado
Notas y contexto
Qué es
xml2json es una herramienta de línea de comandos escrita en JavaScript vanilla sobre Node.js, desarrollada por OCM-Jerez (Observatorio Ciudadano Municipal de Jerez). Lee los ficheros que publica la Plataforma de Contratación del Sector Público español y los convierte de XML a JSON. Se apoya en xml2js para el parseo, node-stream-zip para descomprimir los archivos y readline-sync para una pequeña interfaz interactiva en consola. Está pensada para trabajar con los datos de licitaciones y contratos menores publicados desde 2014.
Para qué sirve
- Convertir a JSON los datos XML de contratación pública que ofrece el Estado.
- Procesar directamente los archivos ZIP descargados y generar un único JSON consolidado.
- Filtrar la información por Perfil de Contratante o por órgano de contratación.
- Eliminar registros duplicados conservando la versión más reciente.
Cuándo usarlo
Es útil cuando necesitas explotar o analizar datos abiertos de contratación pública española y la fuente original solo está disponible en XML comprimido. Encaja en flujos de periodismo de datos, transparencia o análisis cívico. Para necesidades genéricas de XML a JSON existen librerías de propósito general como xml2js o fast-xml-parser; xml2json destaca por estar adaptado al formato y los filtros concretos de esta plataforma.
Ejemplo
git clone https://github.com/OCM-Jerez/xml2json cd xml2json npm install
Editar index.js para indicar los órganos o perfiles a filtrar
node index.js
Al ejecutarlo, la herramienta procesa los ZIP de entrada y crea una carpeta “resultados” con el JSON final y un fichero de log del proceso.
Puntos clave
- Especializado en el formato concreto de la Plataforma de Contratación del Sector Público.
- Lee los ZIP de origen y produce un JSON único, ya deduplicado.
- Permite filtrar por Perfil de Contratante u órgano antes de exportar.
- Proyecto open source con licencia MIT y mantenimiento activo.
Ten en cuenta
La configuración de filtros se hace editando el código (index.js), no mediante argumentos o un fichero de configuración, lo que exige tocar el fuente para cada caso. Es una utilidad de nicho ligada a un formato de datos público español: fuera de ese contexto, una librería genérica de conversión XML a JSON será más adecuada. Conviene revisar que la estructura de los datos de origen no haya cambiado antes de basar un análisis en su salida.