C’est un script InDesign de conversion de fichiers, cette fois, que je prĂ©sente ici. Alors, on peut se demander, « Pourquoi InDesign pour convertir des fichiers XML ? » Et bien, parce que ça marche… Et plutĂŽt pas mal en plus !
Les circonstances
C’est en 2019, quand l’AcadĂ©mie des sciences a confiĂ© au MusĂ©um national d’Histoire naturelle l’Ă©dition de revue de palĂ©ontologie Comptes Rendus Palevol que j’ai eu l’occasion d’Ă©crire ce programme.
En sus de reprendre la production Ă©ditoriale des articles de la revue, le MusĂ©um â par l’intermĂ©diaire de son service des Publications scientifiques â s’Ă©tait engagĂ© Ă republier Ă©galement ses archives, le journal ayant Ă©tĂ© publiĂ© par Elsevier (un Ă©diteur scientifique privĂ©) de 2002 Ă 2018, sur son propre site.
Mais voilĂ qu’Ă la livraison des archives, je m’aperçois que celles-ci sont fournies au format XML, et que je ne dispose d’aucun outil qui me permettrait d’importer les articles publiĂ©s pendant 16 annĂ©es (Ă raison de huit fascicules par an, on arrive Ă environ 1500 articles) dans le site web des Publications, https://sciencepress.mnhn.fr. Les archives que je reçois ressemblent à ça :
Des centaines de fichiers XML, un par article (et encore, lĂ , ils ont tous Ă©tĂ© renommĂ©s ; avant, ils s’appelaient tous « main.xml »…), chacun contenant des donnĂ©es sous la forme :
De mon cĂŽtĂ©, j’ai besoin de fichiers CSV (tableur) « à plat » pour pouvoir importer ces donnĂ©es dans le site des Publications… Il me fallait donc trouver un moyen de passer de l’un Ă l’autre.
Un script de conversion XML vers CSV
En pratique, j’avais dĂ©jĂ Ă©crit deux scripts InDesign de traitements des publications du MusĂ©um, l’un pour extraire les mĂ©tadonnĂ©es d’articles maquettĂ©s sous InDesign et les enregistrer au format CSV, l’autre pour gĂ©nĂ©rer cette fois un fichier XML CrossREF (pour dĂ©clarer l’identifiant de l’article) Ă partir des mĂȘmes mĂ©tadonnĂ©es. Enfin, je savais qu’InDesign Ă©tait capable de lire des fichiers XML, en utilisant certaines bibliothĂšques additionnelles…
DÚs lors, pourquoi ne pas utiliser InDesign pour lire les fichiers XML « Elsevier » des articles de la revue Palevol, et écrire ensuite les données récoltées dans un fichier CSV, comme je savais déjà le faire ?
Ni une, ni deux, j’ai pris mes ciseaux Ă code et je suis allĂ© chercher dans mes archives les bouts de programmes dont j’avais besoin pour Ă©crire un script de conversion de ces fichiers XML dans un format CSV exploitable… Snip snip, snap snap… Et hop, un nouveau programme de rĂ©digĂ© !
Fonctionnement
Le script nĂ©cessite la crĂ©ation d’un dossier nommĂ© « _export_articles » dans le dossier « Documents » de l’utilisateur (un peu contraignant, mais je ne me suis pas penchĂ© plus que ça sur le systĂšme de fichiers utilisĂ© par INDD…)
Ă l’intĂ©rieur de ce dossier, crĂ©er un sous-dossier « xml ». Y dĂ©poser les fichiers XML Ă convertir.
On a donc créé la hiérarchie suivante :
- Documents/
- _export_articles/
- xml/
- fichier1.xml
- fichier2.xml
- etc.
- xml/
- _export_articles/
Il faut ensuite lancer InDesign, et créer un nouveau document vierge.
Lancer ensuite le script ; celui-ci demande Ă©ventuellement certaines informations qu’il ne parvient pas Ă rĂ©colter, ainsi que la date de publication du fascicule de rattachement (il vaut mieux importer les articles fascicule par fascicule).
Une fois l’ensemble des fichiers traitĂ©s, le script crĂ©Ă© dans le dossier « _export_articles », plusieurs fichiers :
- Un fichier « article-xml-AAAA-VOLUME.csv » qui contient les données des articles importés ;
- Un fichier « auteurs.csv » qui enregistre une liste dédoublonnée des auteurs des publications importées ;
- Un fichier « fascicules.csv » qui permet de rĂ©fĂ©rencer les articles d’un mĂȘme fascicule ;
- Un fichier « doi_permaliens.csv » qui permet d’Ă©tablir un lien entre le DOI existant et la nouvelle URL de l’article, basĂ©e sur le nom de la revue, le volume, et le numĂ©ro de l’article (par exemple, http://cr-palevol.fr/20/2).
Enfin, le script affiche un rapport confirmant que les opérations se sont bien passées :
De cette maniĂšre, au fur et Ă mesure de l’import des fichiers des articles, une liste d’auteurs et de couple DOI/URL correspondante s’est constituĂ©e, permettant ensuite un import facile dans le site des Publications.
Tous ces articles sont maintenant accessibles librement et gratuitement sur le site des Comptes Rendus Palevol, Ă l’adresse https://sciencepress.mnhn.fr/fr/periodiques/comptes-rendus-palevol.
Limitations
Vous l’aurez compris, ce programme a Ă©tĂ© Ă©crit dans un but bien prĂ©cis, et rĂ©pond Ă des formats d’entrĂ©e et de sortie Ă©galement trĂšs spĂ©cifiques (ce ne sont pas tous les fichiers XML d’ELsevier que mon script va « manger », mais ceux-lĂ exactement et les fichiers CSV gĂ©nĂ©rĂ©s correspondent aussi Ă un format d’import trĂšs spĂ©cial, etc.) mais il reste possible de l’adapter.
Il montre, dans tous le cas, qu’il est possible de traiter des donnĂ©es informatiques brutes avec InDesign, qui a l’avantage de trĂšs bien gĂ©rer les caractĂšres UTF-8 (et donc de retranscrire parfaitement les accents dans les noms d’auteurs).
Téléchargements
Script XML2CSV, version 0.14 :
Exemples de fichiers obtenus :
Fichiers sources XML (disponibles sur le site des publications) :
https://sciencepress.mnhn.fr/sites/default/files/articles/xml/comptes-rendus-palevol2008v7f4a01.xml
https://sciencepress.mnhn.fr/sites/default/files/articles/xml/comptes-rendus-palevol2008v7f4a02.xml
etc.