Charles-Édouard Coste

Faire simple, c'est compliqué. Mais c'est mon métier.

Il arrive, dans la vie d'un développeur, que l'on ai besoin de consulter le contenu d'un fichier XML ("hashtag euphémisme").

Quand ce fichier fait 10 lignes et est indenté correctement, il n'y a aucun problème à faire cela dans un éditeur de texte. Mais lorsqu'il s'agit d'une sauvegarde de plusieurs mégaoctets, là ça devient plus complexe.

Bien des logiciels en mode graphique existent pour cela, mais si vous voulez juste une solution rapide et légère en ligne de commande, la solution s'appelle xmllint.

Sous Ubuntu, ce programme fait partie du paquet libxml2-utils., vous pouvez donc l'installer via la commande sudo apt-get install libxml2-utils.

Ce programme permet différentes choses mais la partie la plus intéressante à mon avis est son mode "shell" :

xmllint --shell mon_fichier.xml

Vous pouvez alors vous balader dans le fichier comme si vous étiez dans un système de fichier en utilisant les commandes cd et ls.

La seule astuce à connaître, c'est que si le fichier utilise différents espaces de noms il faudra d'abord entrer la commande setrootns afin de pouvoir utiliser les préfixes.

Pour un fichier xml du type :

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/">
    <rdf:Description rdf:about="http://en.wikipedia.org/wiki/Tony_Benn">
        <dc:title>Tony Benn</dc:title>
        <dc:publisher>Wikipedia</dc:publisher>
    </rdf:Description>
</rdf:RDF>

Vous pourrez donc vous rendre sur le titre du document en tapant:

cd /rdf:RDF/rdf:Description/dc:title

ou bien afficher toute la description en tapant :

cat /rdf:RDF/rdf:Description

La liste des commandes disponibles est accessible en tapant help.

xmllint propose bien d'autres fonctionnalités qui ne sont pas le sujet de cet article, je vous encourage à en découvrir plus dans l'article de Nicolas Thouvenin.

Article précédent Article suivant