Bonjour,
Je vous expose mon problème pour lequel, malgré mes recherches sur le web, je n'ai pas trouvé de solution. Je ne sais d'ailleurs pas s'il en existe une.
J'ai fait un exemple simple qui reproduit mon problème. L'arborescence de mes fichiers est la suivante:
E:\temp\Validations\validation.xml
E:\temp\Validations\images\toto.jpg
E:\temp\xsl\Validation.xsl
E:\temp\xsl\MasterXSL.xsl
E:\temp\MasterXML.xml
Le fichier validation.xml contient une balise avec le chemin relatif vers une image:
Le fichier de mise en forme validation.xsl contient le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="E:\temp\xsl\validation.xsl"?> <modale> <mode id="1"> <Picture>.\images\toto.jpg</Picture> </mode> </modale>
Lorsque j'ouvre le fichier validation.xml, l'image s'affiche correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="modale"> <xsl:for-each select="mode[attribute::id mod 2 = 1]"> <a href="{Picture}"><img border="0" src="{Picture}" width="400"/></a> </xsl:for-each> </xsl:template> </xsl:stylesheet>
J'ai maintenant un fichier MasterXML.xml qui fait appel à validation.xml:
Le fichier MasterXSL.xsl contenant quant à lui le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="E:\temp\xsl\MasterXSL.xsl"?> <!DOCTYPE Validations [ <!ENTITY Phys_enc_lib SYSTEM "Validations\validation.xml"> ]> <Validations> &Phys_enc_lib; </Validations>
Le problème est que lorsque j'ouvre le fichier MasterXML.xml, le chemin relatif vers l'image est mal interprété puisqu'il cherche le fichier E:/temp/images/toto.jpg qui n'existe pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="validation.xsl"/> <xsl:template match="/"> <html> <head> </head> <body> <xsl:apply-imports/> </body> </html> </xsl:template> </xsl:stylesheet>
Ma question est alors la suivante: comment faire en sorte que le chemin relatif de l'image soit bien interprété dans le MasterXML? (la solution de passer en chemin absolu pour pointer vers l'image ne me convient pas, ni celle d'avoir mes 2 fichiers XML au même niveau d'arborescence). Je suis plutôt novice en XML, c'est pourquoi je sollicite votre aide.
Merci par avance
Partager