bonjour à tous

j'ai un fichier xml :

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?iview mediapro exportversion="1.0.0.a1" appversion="2.6" ?>

<CatalogType>
    <Catalog>exemple</Catalog>
    <MediaItemList>
        <MediaItem>
            <AnnotationFields>
                <Filename>aaa</Filename>
                <EventDate>bbb</EventDate>
                <City>ccc</City>
                <Copyright>ddd</Copyright>
                <Caption>eee</Caption>
            </AnnotationFields>
        </MediaItem>
    </MediaItemList>
</CatalogType>

et avec le xslt suivant :

<?xml version='1.0' encoding='utf-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:output method='html' version='1.0' encoding='utf-8' indent='no'/>

<xsl:template match="/">

    <structure>
        <xsl:apply-templates/>
    </structure>

</xsl:template >
    
    <xsl:template match="AnnotationFields" >
        
        <image> image="<xsl:value-of select="Filename"/>_img.png" thumb="<xsl:value-of select="Filename"/>_tmb.png" print="false" info1="<xsl:value-of select="Filename"/>" info2="<xsl:value-of select="City"/>" info3="<xsl:value-of select="EventDate"/>" info4="<xsl:value-of select="Copyright"/>" info5="<xsl:value-of select="Caption"/>"
        </image>

</xsl:template >

</xsl:stylesheet>


j'obtiens :

<structure>
    exemple
    
        
            <image> image="aaa_img.png" thumb="aaa_tmb.png" print="false" info1="aaa" info2="bbb" info3="ccc" info4="ddd" info5="eee"
        </image>

</structure>

est-il possible d'obtenir un code final du type :

<structure>
<image image="aaa_img.png" thumb="aaa_tmb.png" print="false" info1="aaa" info2="bbb" info3="ccc" info4="ddd" info5="eee"/>
</structure>


merci
Administrateur
Bonjour Ronnie et bienvenue ici.

Voudrais-tu bien relire les Règles du forum, et notamment le passage qui explique comment mettre en forme ses codes pour qu'ils soient plus lisibles par tout le monde ?

Merci d'avance et bonne chance Smiley smile
désolé ....

bonjour a tous
j'ai un fichier xml :


<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> 
<?iview mediapro exportversion="1.0.0.a1" appversion="2.6" ?> 

<CatalogType> 
    <Catalog>exemple</Catalog> 
    <MediaItemList> 
        <MediaItem> 
            <AnnotationFields> 
                <Filename>aaa</Filename> 
                <EventDate>bbb</EventDate> 
                <City>ccc</City> 
                <Copyright>ddd</Copyright> 
                <Caption>eee</Caption> 
            </AnnotationFields> 
        </MediaItem> 
    </MediaItemList> 
</CatalogType>


et avec le xslt suivant :

<?xml version='1.0' encoding='utf-8'?> 
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> 

<xsl:output method='html' version='1.0' encoding='utf-8' indent='no'/> 

<xsl:template match="/"> 

    <structure> 
        <xsl:apply-templates/> 
    </structure> 

</xsl:template > 
     
    <xsl:template match="AnnotationFields" > 
         
        <image> image="<xsl:value-of select="Filename"/>_img.png" thumb="<xsl:value-of select="Filename"/>_tmb.png" print="false" info1="<xsl:value-of select="Filename"/>" info2="<xsl:value-of select="City"/>" info3="<xsl:value-of select="EventDate"/>" info4="<xsl:value-of select="Copyright"/>" info5="<xsl:value-of select="Caption"/>" 
        </image> 

</xsl:template > 

</xsl:stylesheet>



j'obtiens :

<structure> 
    exemple 
     
         
            <image> image="aaa_img.png" thumb="aaa_tmb.png" print="false" info1="aaa" info2="bbb" info3="ccc" info4="ddd" info5="eee" 
        </image> 

</structure>


est-il possible d'obtenir un code final du type :

<structure>
<image image="aaa_img.png" thumb="aaa_tmb.png" print="false" info1="aaa" info2="bbb" info3="ccc" info4="ddd" info5="eee"/>
</structure>


merci
Administrateur
Ronnie, pourquoi n'as tu pas tout simplement modifié ton premier message au-lieu d'en poster un second ?
Il faut utiliser xsl:attribute, de cette façon :
<element-devant-recevoir-un-attribut>

 <xsl:attribute name="nom de l'attribut">
 évaluation de l'attribut, par ex <xsl:value-of select="Filename"/>
 </xsl:attribute>

 autre chose si l'on veut

</element-devant-recevoir-un-attribut>
désolé rafael je n'oublierai pas la procaine fois

en ce qui concerne la requete merci xavier, je me retrouve à présent avec ce code :


<?xml version='1.0' encoding='utf-8'?> 
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'> 

<xsl:output method='html' version='1.0' encoding='utf-8' indent='no'/> 

<xsl:template match="/"> 
<structure> 
   <image> 
      <xsl:attribute name="image"> 
      <xsl:value-of select="Filename"/>_img.png" thumb="<xsl:value-of select="Filename"/>_tmb.png" print="false" info1="<xsl:value-of select="Filename"/>" info2="<xsl:value-of select="City"/>" info3="<xsl:value-of select="EventDate"/>" info4="<xsl:value-of select="Copyright"/>" info5="<xsl:value-of select="Caption"/> 

      </xsl:attribute> 
   </image> 
</structure> 
</xsl:template> 
</xsl:stylesheet>


j'obtiens :

<structure><image image="_img.png&quot; thumb=&quot;_tmb.png&quot; print=&quot;false&quot; info1=&quot;&quot; info2=&quot;&quot; info3=&quot;&quot; info4=&quot;&quot; info5=&quot;"></image></structure>


je remarque qu'il ne recup pas les infos pour les mettre dans les champs corespondants celà vient surement du fait que je ne sait pas comment placer cette ligne nan ?

<xsl:template match="AnnotationFields" >


merci de me renseigner et bonne journée
ça progresse mais c'est pas encore ça :

je me retrouve avec en xml :

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?iview mediapro exportversion="1.0.0.a1" appversion="2.6" ?>

<CatalogType>
	<Catalog>exemple</Catalog>
	<MediaItemList>
		<MediaItem>
			<AnnotationFields>
				<Filename>05035_002</Filename>
				<EventDate>2005:03:17</EventDate>
				<City>Noirmoutier en l&apos;Île  85330</City>
				<Copyright>©Pascal Xicluna/Min.Agri.Fr.</Copyright>
				<Caption>Proue de la maquette d&apos;un fileyeur de 12 mètres. CNB, groupe Bénéteau.</Caption>
			</AnnotationFields>
		</MediaItem>
	</MediaItemList>
</CatalogType>



en xslt :

<?xml version='1.0' encoding='utf-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:output method='html' version='1.0' encoding='utf-8' indent='no'/>

<xsl:template match="/">

<structure>

	<image>

		<xsl:attribute name="image"><xsl:value-of select="concat(Filename,'_img.png')"/></xsl:attribute>
		<xsl:attribute name="thumb"><xsl:value-of select="concat(Filename,'_tmb.png')"/></xsl:attribute> print="false" 
		<xsl:attribute name="info1"><xsl:value-of select="concat(Filename)"/></xsl:attribute> 
		<xsl:attribute name="info2"><xsl:value-of select="concat(City)"/></xsl:attribute> 
		<xsl:attribute name="info3"><xsl:value-of select="concat(EventDate)"/></xsl:attribute> 
		<xsl:attribute name="info4"><xsl:value-of select="concat(Copyright)"/></xsl:attribute>
		<xsl:attribute name="info5"><xsl:value-of select="concat(Caption)"/></xsl:attribute>

</image>
</structure>
</xsl:template>
</xsl:stylesheet>


et j'obtiens...bah rien en fait il veut pas
et je ne trouve pas les fautes
j'ai l'impression qu'il ne récupère aucune info

merci
Je ne sais pas très bien ce que tu souhaites d'un point de vue gobal, mais voici en m'inspirant de ton code une transformation qui fonctionne et produit les 2 premier attributs (je te laisse complèter pour la suite) :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='html' version='1.0' encoding='utf-8' indent='no'/>

<xsl:template match="/">
    <structure>
     <image> 
		<xsl:attribute name="image">
		<xsl:value-of select="concat(//Filename,'_img.png')"/>
		</xsl:attribute>
		<xsl:attribute name="thumb">
		<xsl:value-of select="concat(//Filename,'_tmb.png')"/>
		</xsl:attribute>
        </image>
    </structure>
</xsl:template>

</xsl:stylesheet>
dans ton xsl (sommairement) :



<xsl:template match="//AnnotationFields" >
        
      <image image="{./Filename}_img.png" thumb="{./Filename}_tmb.png" print="false" info1="{./Filename}" info2="{./City}" info3="{./EventDate}" info4="{./Copyright}" info5="{./Caption}" />

</xsl:template >



à noter: les éléments xml ne PEUVENT PAS commencer par des majuscules, c'est pas super.

conseil : apprends (ou révise) xPath.
Modifié par Lisarael (02 May 2005 - 19:14)
merci a tous
j'ai essayer de retenir vos conseils

voila mon xml du départ :
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?iview mediapro exportversion="1.0.0.a1" appversion="2.6" ?>

<CatalogType>
	<Catalog>exemple</Catalog>
	<MediaItemList>
		<MediaItem>
			<AnnotationFields>
				<Filename>05035_002</Filename>
				<EventDate>2005:03:17</EventDate>
				<City>Noirmoutier en l&apos;Île  85330</City>
				<Copyright>©Pascal Xicluna/Min.Agri.Fr.</Copyright>
				<Caption>Proue de la maquette d&apos;un fileyeur de 12 mètres. CNB, groupe Bénéteau.</Caption>
			</AnnotationFields>
		</MediaItem>
		
		<MediaItem>
			<AnnotationFields>
				<Filename>05035_005</Filename>
				<EventDate>2005:03:17</EventDate>
				<City>Noirmoutier en l&apos;Île  85330</City>
				<Copyright>©Pascal Xicluna/Min.Agri.Fr.</Copyright>
				<Caption>Pose de membrures dans une coque en composite verre et résine polyester d&apos;un chalutier de 12 mètres.
Atelier de moulage de Bénéteau Pêche, CNB.
Chantier de construction de bateaux de pêche.</Caption>
			</AnnotationFields>
		</MediaItem>
	</MediaItemList>
</CatalogType>


ainsi que mon xslt :


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method='html' version='1.0' encoding='utf-8' indent='no'/>

<xsl:template match="//AnnotationFields" >

<structure>

<image image="{./Filename}_img.png" thumb="{./Filename}_tmb.png" print="false" info1="{./Filename}" info2="{./City}" info3="{./EventDate}" info4="{./Copyright}" info5="{./Caption}" /></structure>

</xsl:template >


</xsl:stylesheet>


et le résultat est :



	exemple
	
		
			<structure><image image="05035_002_img.png" thumb="05035_002_tmb.png" print="false" info1="05035_002" info2="Noirmoutier en l'IÌ?le  85330" info3="2005:03:17" info4="©Pascal Xicluna/Min.Agri.Fr." info5="Proue de la maquette d'un fileyeur de 12 meÌ?tres. CNB, groupe BeÌ?neÌ?teau."></image></structure>
		
		
		
			<structure><image image="05035_005_img.png" thumb="05035_005_tmb.png" print="false" info1="05035_005" info2="Noirmoutier en l'IÌ?le  85330" info3="2005:03:17" info4="©Pascal Xicluna/Min.Agri.Fr." info5="Pose de membrures dans une coque en composite verre et reÌ?sine polyester d'un chalutier de 12 meÌ?tres.&#10;Atelier de moulage de BeÌ?neÌ?teau PeÌ?che, CNB.&#10;Chantier de construction de bateaux de peÌ?che."></image></structure>
		
	




mais j'ai quelques soucis


1) je souhaiterais que la balise <structure>ne se repete pas avant chaque image mais juste en début et fin de toutes les images, je n'ai sait pas ainsi où placer cette balise...

2)je desirerais enlever le mot "exemple" situé au départ

3)est ce que qq1 saurait d'ou viennent ces caractères invalides du type : CNB.&#10


merci d'avance pour vos réponses
j'avance petit à petit


mon xslt est donc le suivant :





<?xml version="1.0" encoding="ISO-8859-1"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method='xml' encoding='ISO-8859-1' /> 


<xsl:template match="/"> 
<xsl:apply-templates select="CatalogType/MediaItemList"/> 
</xsl:template> 
<xsl:template match="CatalogType/MediaItemList"> 


<structure> 

<xsl:for-each select="MediaItem/AnnotationFields"> 

<image image="{./Filename}_img.png" thumb="{./Filename}_tmb.png" print="false" info1="{./Filename}" info2="{./City}" info3="{./EventDate}" info4="{./Copyright}" info5="{./Caption}" /> 

</xsl:for-each> 

</structure> 
</xsl:template > 
</xsl:stylesheet> 




et au final j'obtiens :






<?xml version="1.0" encoding="ISO-8859-1"?><structure><image image="05035_002_img.png" thumb="05035_002_tmb.png" print="false" info1="05035_002" info2="Noirmoutier en l'Île  85330" info3="2005:03:17" info4="©Pascal Xicluna/Min.Agri.Fr." info5="Proue de la maquette d'un fileyeur de 12 mètres. CNB, groupe Bénéteau."/><image image="05035_005_img.png" thumb="05035_005_tmb.png" print="false" info1="05035_005" info2="Noirmoutier en l'Île  85330" info3="2005:03:17" info4="©Pascal Xicluna/Min.Agri.Fr." info5="Pose de membrures dans une coque en composite verre et résine polyester d'un chalutier de 12 mètres. Atelier de moulage de Bénéteau Pêche, CNB. Chantier de construction de bateaux de pêche."/></structure> 



les seuls défauts que je n'arrive pas à modifier sont la ligne de la version du xml qui apparait...est elle genante ou necessaire ?
mais surtout je n'arrive pas à effectuer un retour à la ligne apres chaque fin de balise <image>
si qq1 pourrrait maider merci !!! Smiley cligne
pour le retour à la ligne, faut que je fouille ma référence.

par contre, le balise <?xml version="1.0" ?> est obligatoire, et la transformation la rajoute d'elle même.
valà.

remplace ta balise output par celle-ci:

<xsl:output method="xml" encoding="ISO-8859-1" indent="yes" />