Comment gérer des champs photos exportés de BDD avec XSLT ? - XML/XSL - Programmation
Marsh Posté le 11-04-2005 à 15:19:47
merci pour la réponse rapide.
je viens de me triturer un peu les méninges pour essayer de voir comment intégrer <img src="{Photo}"> par rapport <IMAGE source="images/photo1.jpg"/> (ce qu' attend mon .xsl actuel pour qu'il marche).
ou est ce que tu as voulu m'expliquer que c'est une formule à utiliser en javaScript ? auquel cas, je connais pas !
peux tu me donner de plus amples explications ?
sympa!...merci.
Marsh Posté le 11-04-2005 à 15:38:46
C'est de l'XSLT, hein En devinant ta structure, je ferais :
<xsl:for-each select="ARTICLE/Record"> |
Et il te génèrera :
<IMAGE source="images/photo1.jpg" /> |
Marsh Posté le 11-04-2005 à 21:41:19
J'ai pu essayer ce soir mais je n'ai pas réussi :
En fait mon .xsl ne bloque plus mais je n'affiche pas les images. Pourtant le chemin est bon. et j'ai testé en réduisant au maxi la mise en page tables, bordures etc...
Je joins ci-après mon schéma de XSL correspondant à l'exemple XML donné précédemment :
où est donc l'erreur ? :
"
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/">
<html>
<head>
</head>
<body>
<xsl:for-each select="ARTICLE/Record_0">
<IMAGE source="{Photo}" />
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
"
de plus si je vise seulement :
<xsl:for-each select="ARTICLE/Record"> alors j'ai plus d'affichage du tout ???
merci pour toute idée ...
Marsh Posté le 12-04-2005 à 10:11:16
.......................... Le mec....
Il écrit :
<IMAGE source="{Photo}" /> |
Alors moi je pensais qu'il convertissait vers un autre format XML propriétaire bien à lui, avec une balise IMAGE (notez les majuscules ), avec un bel attribut source.
Mais nan.
Il veut bien afficher de l'XHTML.
Et il invente une balise IMAGE (notez les majuscules toujours), avec un attribut source.
Apparemment, il a jamais fait d'HTML de sa vie.
Alors il s'invente un élément IMAGE (en majuscules), avec un attribut source, en pensant que ça fonctionnera...
Bon aller je suis sympa, je met le code comme je l'avais mis au tout début, avec corrections, et tout et tout :
<?xml version="1.0" encoding="utf-8" ?> |
Marsh Posté le 12-04-2005 à 14:34:29
Bien vu ! merci
Bon Ok, je reconnais, j'ai jusqu'ici utilisé la balise <IMAGE source="xxxx/xxxx.jpg"/> comme conseillé dans mon livre de leçon mais j'apprends avec bonheur le {}...
Bon OK ! "pourquoi faire simple quand on peut faire compliqué !!!" mais on ne va pas aller devant Delarue pour çà ! ou alors, avec des lunettes ou mieux, avec ... un masque !
NB. quand tu dis :"Alors moi je pensais qu'il convertissait vers un autre format XML propriétaire bien à lui " çà m'intéresse parceque ce qui m'embête quand j'exporte mon fichier articles c'est que j'obtiens (voir là haut) chaque fiche séparée par un parasite <Record_0>, <Record_1> ...etc.
alors que mes articles sont déjà numérotés par leur code !
(on ne peut pas intervenir sur mode d'exportation du logiciel de gestion)
vois-tu un moyen pour restructurer facilement mon fichier en un autre fichier XML mieux formé ?
En tout cas :
encore merci!
Marsh Posté le 14-04-2005 à 10:04:16
Le {photo} comme tu dis est simplement la notation raccourcie d'un <xsl:value-of select="photo" />
Marsh Posté le 14-04-2005 à 10:37:16
Et sachant que le value-of peut pas être inclus dans le truc comme ça, sinon ça pose des problèmes de validation etc etc
Marsh Posté le 17-04-2005 à 14:15:22
On peut utiliser le xsl:value-of à condition de générer la balise image à l'aide de xsl:element et xsl:attribut, mais je te l'accorde dans ce cas ça n'apporte pas grand chose et c'est plus long à écrire, faut juste savoir que ça existe...
Marsh Posté le 11-04-2005 à 13:53:11
Merci d'avance si quelqu'un peut m'aider :
Quand je récupère en format xml les champs d'un fichier articles d'un logiciel de gestion j'obtiens par exemple :
<ARTICLE>
<Record_0>
<Code>BLABLA1</Code>
<Designation>BLABLA</Designation>
<Photo>/images/photo1.jpg</Photo>
</Record_0>
<Record_1>
<Code>BLABLA2</Code>
<Designation>BLABLAXXX</Designation>
<Photo>/images/photo2.jpg</Photo>
</Record_1>
....
</ARTICLE>
pour éditer mon champ </photo> par XSLT j'aurais besoin qu'il soit au format : <IMAGE source="images/photo1.jpg"/> ou utiliser une formule qui lise le contenu du champ <Photo> pour l'interpréter comme image.
comment donc obtenir cette transformation si possible sans devoir programmer autrement qu'avec XSLT ou au pire avec JavaScript.
D'avance merci de l'aide que vous apporterez à un pauvre néophite qui se fait sa formation au jour le jour, "sur le tas" ...
Bien cordialement à vous