Transformation XSLT avec Python sous MacOSX

Pour obtenir une transformation d’un document XML source via une feuille de style XSLT, nous aurons ici recours aux librairies libxml et libxslt. Celle-ci ont en effet été déclinées pour pouvoir travailler avec Python.

Prérequis :
– MacOSX 10.3 ou supérieur
– Python préinstallé ou MacPython

Première étape : installation de libxml

La bibliothèque libxml fournit aux programmes les fonctions permettant le décodage/parcours des fichiers au format XML. Après l’avoir téléchargée, on l’installe en lançant les commandes suivantes:

Version de la bibliothèque utilisée : 2.7.0

./configure –prefix=/usr/local/libxml2-2.7.0
make
sudo make install

Deuxième étape : installation de libxslt

La bibliothèque libxslt étend la bibliothèque libxml en lui ajoutant le support des feuilles de styles XSLT. Après l’avoir téléchargée, on l’installe en lançant les commandes suivantes:

Version de la bibliothèque utilisée : 1.1.24

./configure –prefix=/usr/local/libxslt-1.1.24 –with-libxml-prefix=/usr/local/libxml2-2.7.0
make
sudo make install

Troisième étape : liaison python/libxml/libxslt

Pour lier Python aux deux bibliothèques XML précédemment installées, on va utiliser des liens symboliques à partir du répertoire de gestion d’extensions de Python : site-packages. Ce répertoire est en effet destiné à recevoir les modules supplémentaires installés par l’utilisateur.

Version de Pyhton utilisée : 2.5

Il faut d’abord repérer le chemin d’accès du répertoire “site-packages”. Si vous utilisez le moteur Python préinstallé de MacOSX, vous le trouverez à l’endroit suivant :

/Library/Python/2.5/site-packages/

Si vous avez installé MacPython, vous le trouverez à l’endroit suivant :

/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages

Une fois repéré, vous vous placer dans le répertoire site-packages:

cd /Library/Python/2.5/site-packages/
 
ou
 
cd /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/
site-packages

Puis vous créez les liens symboliques vers les bibliothèques libxml et libxslt:

sudo ln -s /usr/local/libxml2-2.7.0/lib/python2.5/site-packages/* .
 
et
 
sudo ln -s /usr/local/libxslt-1.1.24/lib/python2.5/site-packages/* .

Quatrième étape : tester une transformation XSLT

Pour boucler la procédure, il nous reste à tester un script Python exécutant une transformation d’un document XML via une feuille de style XSLT. En voici un exemple.

#!/usr/bin/python
import libxml2
import libxslt
 
xsltdoc = libxml2.parseFile("test.xsl")
style = libxslt.parseStylesheetDoc(xsltdoc)
xmldoc = libxml2.parseFile("test.xml")
result = style.applyStylesheet(xmldoc, None)
style.saveResultToFilename("dump.txt", result, 0)
style.freeStylesheet()
xmldoc.freeDoc()
result.freeDoc()

Leave Comment