Bonjour,
Dans le cadre d'un petit projet je dois pouvoir lire certains fichiers xml contenus dans une archive zip et sur lesquelles je dois effectuer une transformation XSLT. Une première idée serait de simplement décompresser les fichiers dont j'ai besoin pour effectuer la transformation... mais en même temps ce serait un peu trop simple
Voilà, je me demandais si il était possible de mettre à l'intérieur d'une feuille de style XSL, une référence vers des flux fichiers contenues dans une archive ZIP, ou si le processeur XSLT va se vautrer lamentablement.
En pratique, je pensais peut-être utiliser une expression XPath de ce genre-là:
select="document(zip://tmp/test.zip#test.xml)"
J'ai essayé d'effectuer le test par moi même, mais (pour je ne sais quelle raison) je n'arrive pas à accéder à un flux ZIP à partir d'une URL:
$reader->open('zip://hello.zip', 'r');
Retourne cette erreur (on notera la clareté du message):
Warning: XMLReader::open(zip://hello.zip) [function.XMLReader-open]: failed to open stream: Succès in /opt/lampp/htdocs/fileupload.php on line 37
Alors que l'utilisation de la méthode getStream de ZipArchive marche sans encombre.
D'après-vous, il y a une chance que j'arrive à mes fins avec les flux, ou il faut que je me résigne à extraire les 3 fichiers en une fois?
Indépendemment de cela, le fait que je n'arrive pas à ouvrire les flux via URL, cela peut-être un problème avec mon installation?
Merci!
M. H.
Partager