sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sdx-users] pbm de compréhension de 'document.xsl' dans 'sdxworld'


From: OSO
Subject: Re: [sdx-users] pbm de compréhension de 'document.xsl' dans 'sdxworld'
Date: Fri, 11 Apr 2003 17:41:56 +0200
User-agent: IMHO/0.98.2 (Webmail for Roxen)

Merci beaucoup, je pensais effectivement que l'ordre était celui de la
feuille de style et non celui du document source.
Mes connaissance xsl sont fraiche d'une semaine et je n'ait
apparemment pas encore tout bien assimilé :-)

Guillaume Bourgois


-------------------
> Bonjour,
> 
> OSO a écrit:
> 
> > Quelqu'un pourait-il m'expliquer comment se déroule le processus
> > d'appel des règles (apply-template) pour que dans la page html
> > résultante l'image et le titre s'affiches AVANT les url et mail
alors
> > que dans la feuille de style document.xsl la règle qui s'applique
aux
> > éléments images apparait APRES les règles relatives aux éléments
> > "adresse" et "email".
> 
> Je n'ai pu vérifier sur sdxworld. Je l'ai fait sur sdxtest qui est
dans 
> le CVS. Mais bon, ça devrait correspondre.
> 
> Premièrement, quand on appelle <xsl:apply-templates>, c'est l'ordre
du 
> document transformé qui s'applique. Celui de la XSL n'est *jamais* 
> significatif ; vous pouvez donc organiser vos templates comme vous
le 
> désirez.
> 
> Etant donné que, dans le document, on a une structure :
> 
> <projet id="xxx">
>    <titre>bla</titre>
>    <adresses>
>      <adresse>bla</adresse>
>    </adresses>
>    <images>
>      <image src="yyy" id="aaa" mime-type="image/jpeg"/>
>    </images>
>    <responsable>
>     <nom>bla</nom>
>     <prenom>bla</prenom>
>     <email>bla</email>
>    </responsable>
>    <description>
> bla
>    </description>
> </projet>
> 
> ... il est donc logique que <xsl:apply-templates> traite le titre en

> premier, ensuite les adresses, etc.
> 
> Il y a une (petite) subtilité qui permet, contrairement à 
> <xsl:apply-templates> de *contrôler* le flux :
> 
> <xsl:template match="titre">
>    <tr>
>      <td>
>        <xsl:if test="../images/image/@id">
>          <img 
>
src="{/sdx:document/@api-url}/getatt?app={/sdx:document/@app}&amp;id={
../images/image/@id}" 
> alt="Image attachée"/>
>        </xsl:if>
>       </td>
>       <td>
>        <h1>
>          <xsl:apply-templates/>
>        </h1>
>        </td>
>      </tr>
> </xsl:template>
> 
> Voici donc pourquoi l'image est affichée avant le titre : on va 
> *explicitement* la chercher. Il n'y a d'ailleurs pas de template
pour 
> l'élément "image" et, de surcroît le modèle de son conteneur est
vide :
> 
> <xsl:template match="images"/>
> 
> ... ce qui empêche le traitement par défaut (copie du noeud texte) ;

> c'est la manière normale de travailler en XSL.
> 
> BTW : votre problème est un pur problème XSL et SDx n'a rien à voir 
> là-dedans :-)
> 
> A bientôt,
> 
> -- 
> Pierrick Brihaye, informaticien
> Service régional de l'Inventaire
> DRAC Bretagne
> mailto:address@hidden
> 
> 
> 
> _______________________________________________
> sdx-users mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/sdx-users
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]