mathmax Posté 4 Mars 2006 Posté 4 Mars 2006 Bonjour, Je cherche à faire appel à une page XML depuis une feuille XSL. J'utilise pour celà la fonction Xpath document(). Cela marche bien quand je fais ma transformation côté client, mais ne marche en revanche plus dès que j'insère mon fragment XSLT dans une page dynamique (que je mette le chemin vers le XML en absolu ou en relatif). Avez-vous une idée du problème ? merci d'avance
Anonymus Posté 4 Mars 2006 Posté 4 Mars 2006 tu as une page d'exemple, s'il te plait ? Ca ressemble à un problème de guillemets...
mathmax Posté 5 Mars 2006 Auteur Posté 5 Mars 2006 tu veux dire une page de XSL ? si c'est ça que tu veux, je crois que ce code te suffit : <xsl:value-of select="document('http://www.orkos.com/Portals/_XML_XSL/F_Eu.xml')//Root/CalendarGroup/CalendarList/CalendarItem/CalendarCountry" /> mais ce code ne pose pas de problème pour les transformation côté client. En revanche il ne fonctionne pas si j'insère un fragment XSLT le contenant dans une page dynamique. Dans mon cas, j'ai fais cette transformation à l'aide de Dreamweaver qui me génère un fichier vb.net pour la conversion. Tu peux le voir ici si tu veux : http://www.orkos.com/tests/MM_XSLTransform.txt
robinsonvendredi Posté 5 Mars 2006 Posté 5 Mars 2006 Vérifie que la bonne version du framework .NET est installée sur le serveur. Je ne connais pas les capacités de dreamweaver en .NET mais pour créer / compiler un projet .NET il est sans doute préférable de travailler dans visual studio. S'il y a du code généré il sera plus propre AMHA.
mathmax Posté 5 Mars 2006 Auteur Posté 5 Mars 2006 Je veux bien, mais comment faire dans visual Studio ? J'utilise le framework 2. Crois-tu vraiment que le problème viens de là ?
robinsonvendredi Posté 5 Mars 2006 Posté 5 Mars 2006 Quelle est l'erreur renvoyée par le serveur ? S'il n'y a pas de message d'erreur .NET c'est que le framework n'est pas installé.
mathmax Posté 6 Mars 2006 Auteur Posté 6 Mars 2006 (modifié) Pas de message d'erreur. En revanche le framework 2 est bien installé chez moi. je fais régulièrement tourner de programme issue de la plateforme .Net sur mon ordinateur. En fait, on dirait que la fonction document() n'est pas interprétée et donc le chemin n'étant pas valide, la balise <xsl:value/> ne retourne aucune valeur. Voici un exmple que j'ai fais afin de bien cibler le problème : J'ai crée dans un même dossier : - 2 pages XML noms.xml et commentaires.xml qui ont réspectivement les structures suivantes : <Root> <Item> <Nom>Nom1</Nom> </Item> <Item> <Nom>Nom2</Nom> </Item>...</Root> et <Root> <Item> <Commentaire>commentaire1</Commentaire> </Item> <Item> <Commentaire>commentaire2</Commentaire> </Item>...</Root> - 1 feuille XSL test.xsl. Entre les balises template, j'ai mis : <p><xsl:value-of select="Root/Item/Nom"/></p><p><xsl:value-of select="document('http://www.orkos.com/tests/commentaires.xml')//Item/Commentaire"/></p> (donc un appel à Nom (dans noms.xml) directement et un appel à commentaire (dans commentaires.xml) par le biais de la fonction document()). - 1 page dynamique test.aspx dans laquelle je fais appel à mes document noms.xml et test.xsl et que je transforme grâce au fichier MM_XSLTransform.vb. Voilà à quoi ressemblent ces appels : <body><%Dim mm_xsl As MM.XSLTransform = new MM.XSLTransform()mm_xsl.setXML(Server.MapPath("noms.xml"))mm_xsl.setXSL(Server.MapPath("test.xsl"))Response.write(mm_xsl.Transform())%></body> Maintenant je fais les tests suivants : Dans mon fichier noms.xml, j'ai ajouté un lien vers la feuille test.xsl. Quand j'appelle noms.xml dans le navigateur, l'obtiens ceci. Le nom s'affiche correctement. Dans la feuille XSL, la fonction document() est également correctement intérprétée car mon commentaire s'affiche bien en dessous du nom. Jusqu'ici tout fonctionne donc nomralemement. Maintenant j'éxécute la page test.aspx qui je le rapelle fais appel à noms.xml et test.xsl. J'obtiens ceci. Ici le commentaire ne s'affiche pas. La fonction document() ne semble pas être interprétée. Le chemin Xpath document('http://www.orkos.com/tests/commentaires.xml')//Item/Commentaire est pourtant correct puisque le commentaire s'affichait lors de l'éxécution directe de noms.xml. Et c'est là que je ne comprends pas pourquoi dans le deuxième cas, ma fonction document() n'est pas intérprétée... Une explication ? Je mets ici un zip contenant tout l'exemple (y compris le doc vb de transformation), c'est peut-être plus clair d'étudier ça en local. Merci d'avance pour votre aide. Modifié 6 Mars 2006 par mathmax
mathmax Posté 21 Mars 2006 Auteur Posté 21 Mars 2006 (modifié) J'ai enfon trouvé la réponse à ma question ici. Modifié 21 Mars 2006 par mathmax
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant