Bonjour
Mon but : transformer côté client, grâce à un fichier xsl, un document xml récupéré depuis un service web. Je ne peux donc pas éditer le fichier xml, uniquement le xsl...
Après avoir fouiné un peu partout sur le web, il m'a semblé que la meilleure solution pour lier ces deux fichiers était de ré-insérer les données XML dans mon XSL avec un select="document($url)" et d'utiliser cette feuille de style depuis une autre feuille xml "bidon". (c'est pas très beau je trouve, mais je ne vois pas vraiment quoi faire...)
Mon problème : ça marche bien avec des fichiers locaux, mais pas avec l'URL que je veux utiliser au final...
Voici un bout du fichier xsl qui me sert de test :
Le contenu des variables me satisfait , les balises object affichent ce à quoi je m'attendais : j'en déduis que les url sont bons, que les fichiers existent, que les fichiers sont accessibles...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <xsl:variable name="loc">http://localhost/amazon.xml</xsl:variable> <!-- fichier local, copie du fichier externe --> <xsl:variable name="ext">http://ecs.amazonaws.fr/onca/xml?Service=AWSECommerceService&SubscriptionId=0525E2PQ81DD7ZTWTK82&Operation=ListLookup&Style=xml&ListType=WishList&ListId=24XLTAW4YI8UY&ResponseGroup=ListFull,Medium</xsl:variable> <!-- le fichier externe que je veux utiliser --> <xsl:value-of select="$loc"/> <xsl:value-of select="document($loc)"/> <object data="{$loc}" type="text/xml" width="300" height= "200"/> <xsl:value-of select="$ext"/> <xsl:value-of select="document($ext)"/> <object data="{$ext}" type="text/xml" width="300" height= "200"/>
Par contre, la fonction document() ne se comporte pas de la même façon dans les deux cas : le contenu de la copie locale s'affiche mais pas celui de la source externe (rien dans le code source généré).
Il me semble avoir lu quelque part lors de mes précédentes recherches que dans le cas de la liaison "classique" (référence à la feuille de style xsl dans le document xml) il fallait que les deux fichiers soient dans le même répertoire. Pourrait-il s'agir d'un problème de ce type ?
J'ai pourtant trouvé pas mal de tutoriels/forums où la solution <xsl:value-of select="document('l-url-que-je-veux')"/> était présentée comme évidente et marchant à coup sûr...
Le problème pourrait-il être du à mon serveur ? Je travaille en local, avec easy-php, parce que je n'ai pas d'hébergement public sous la main pour le moment, et je sais que parfois ça me pose problème...
Cependant il me semble que là le serveur n'a pas de travail à faire, c'est le client qui interprète les fichiers xml et xsl ; me trompé-je ?
Et puis si quelqu'un a une super solution élégante et facile à mon problème de base (lier un fichier xsl et un fichier xml sans toucher au xml et de façon à laisser tout le boulot au client), qu'il ne se gêne surtout pas pour me la donner...
Merci d'avance à tous ceux qui prendront le temps de me lire et de me répondre.
Partager