Toutes les sources sont dans le package joint à ce billet. Pour pouvoir utiliser la CLI, il suffit de faire les commandes suivantes:

wget "http://www.astorm.ch/blog/public/Sources/PrettyPrinter.zip"
unzip "PrettyPrinter.zip"
cd xml-pretty-printer
make #ou bien 'make light' si libxml2.0 n'est pas installé

Une fois compilé, il n'y a plus qu'a utiliser l'exécutable xml-pretty-printer. Celui-ci lit et écrit sur l'entrée et la sortie standard. Donc pour formatter un fichier XML:

cat "test1.xml" | ./xml-pretty-printer --compact
<c>
  <a>1234</a>
  asdf
  <test/>
  <!-- comment -->
  <t><!-- comment2 --></t>
  <content><![CDATA[data]]></content>
</c>

Il y a pas mal de fonctionnalités concernant le formattage du XML. Il est possible de gérer les retours à la ligne, l'expansion ou l'abbrévation des noeuds vides (<x></x> et <x/>), de mettre les commentaires/textes/cdata sur une seule ligne ou de les aligner s'ils sont sur plusieurs lignes, de gérer l'indentation (caractère à utiliser et quantité à chaque niveau), ...

L'option -h (ou --help) donne toute les possibilités. Par contre le programme ne modifie en aucun cas la structure du fichier (et il n'y a pas d'option en ce sens).

Pour terminer, j'en ai profité pour rentre le plugin plus accessible aux utilisateurs de geany en faisant une interface graphique pour le plugin. Par contre il faudra probablement attendre la prochaine version de geany pour avoir la mise à jour du plugin dans les dépôts. Plugin Préférences