Conversion XML vers CSV

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.

L’AcadĂ©mie des sciences est co-Ă©ditrice de la revue Comptes Rendus Palevol
avec le MusĂ©um national d’Histoire naturelle depuis 2019

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.

Le logo d’Elsevier…

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…

Idea Bulb Transparent Transparent HQ PNG Download | FreePNGimg

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Ă© !

Mes scripts sont un peu comme Frankenstein : ils font flipper mĂȘme quand ils marchent !
[auteur : Cyril LELONG / CatAndCookies.com]

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.

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.