XML : Manipulation avec xmllint et trang

XML

Dans le cadre de mon travail, je suis amené à manipuler des fichiers XML assez volumineux sur lesquels je dois effectuer des requêtes. J’étais donc à la recherche d’une solution rapide à mettre en oeuvre permettant d’isoler certaine parties de ces fichiers XML. De plus je n’ai pas nécessairement accès au schéma XSD de ce dernier.

J’ai trouvez mon bonheur avec « xmllint« .  C’est un outil en ligne de commande  qui permet entre autre de réaliser des requêtes XPath. Pour la partie génération du schéma XSD, j’ai opté pour un outil du nom de « trang » et enfin, j’utilise qxmledit pour visualiser de manière graphique le schéma XSD généré.

Afficher le fichier XML (xmllint)

Xmllint effectue ces sorties sur la sortie standard. Il est donc possible de chaîner plusieurs commandes via des tubes. Pour récupérer la sortie dans un fichier, on redirigera la sortie standard vers le fichier de notre choix.

Formater le fichier XML (suppression des retours à la ligne, indentation…) :

xmllint --format fichier.xml

Afficher une version HTML du fichier :

xmllint --htmlout fichier.xml

Effectuer des requêtes XPath (xmllint)

XPath est un langage appartenant à la sphère XML qui permet d’isoler certaines partie d’un document XML répondant à certains critères (bref, on fait des requêtes…).

La syntaxe xmllint est la suivante :

xmllint --xpath "expression xpath" fichier.xml

Généré un schéma XSD à partir d’un fichier XML (trang)

Trang est disponible à l’URL suivante : http://jing-trang.googlecode.com/files/trang-20081028.zip. Pour l’installer il suffit de décompresser le fichier sur votre poste. Pour ma part, j’utilise un dossier « bin » à la racine de mon compte afin de stocker tous mes utilitaires.

Pour générer le fichier « schemaFichier.xsd » correspondant au schéma utilisé par le fichier « fichier.xml », il suffit de tapper la commande suivante :

java -jar ~/bin/trang.jar fichier.xml schemaFichier.xsd

 Visualiser de manière graphique un schéma XSD (qxmledit)

L’écriture de requêtes XPath est beacoup plus simple si l’on a sous les yeux une représentation graphique du schéma XSD correspondant a la structure des données. Après recherche sur le net, je suis tombé sous « qxmledit« .

Pour les distribution ARCH et Manjaro, cet outil est disponible sous AUR, mais la version proposée n’est plus à jour. J’ai posté un commentaire permettant de modifier le fichier de build afin d’utiliser la dernière version.

J’en profite pour donner la procédure ci-dessous :

  • installer le paquet via « aur »
yaourt -S qxmledit
  • yaourt retourne une erreur en disant qu’il n’arrive pas à accèder aux sources. On va donc corriger tout cela en éditant le fichier « /tmp/yaourt-tmp-XXXX/aur-qxmledit/PKGBUILD ». (XXX représente votre login). Remplacer les premières lignes du fichier avec celles données ci-dessous :
pkgname=qxmledit
pkgver=0.8.14
pkgrel=1
pkgdesc="Simple Qt XML editor and XSD viewer"
arch=('i686' 'x86_64')
url="http://code.google.com/p/qxmledit/"
license=('GPL3' 'LGPL3')
depends=('qt5-svg' 'qt5-xmlpatterns' 'desktop-file-utils')
install="$pkgname.install"
source=("http://sourceforge.net/projects/qxmledit/files/QXmlEdit-$pkgver/qxmledit-$pkgver-src.tgz/download")
md5sums=('1fe8296c200a36229a512ee0e97fbbdf')
  • lancer la compilation
makepkg
  • installer qxmledit
sudo pacman -U qxmledit-0.8.14-1-x86_64.pkg.tar.xz

Cela devrait fonctionné.

One Comment

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *