IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] afficher des attributs ajouter


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 49
    Points
    49
    Par défaut [XSLT] afficher des attributs ajouter
    Bonjour à tous,

    Je découvre en ce moment xsl, et actuellement je suis sur la partie ajouter des éléments et attributs. Mon problème c'est que je n'arrive pas afficher les attributs créés, voici mon exemple de test avec les deux fichiers xml et xsl


    Fichier formation.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="formation.xsl"?>
    <formations>
    	<formation code="06-XML" module="Introduction xml xslt" contenu-cours="Syntaxe de base" salle="s-10">
    		DEVELOPPEUR WEB 2.0
    	</formation>
    </formations>
    Fichier formation.xsl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    	<!-- template de base  -->
    	<xsl:template match="/">
    		<html>
    			<head>
    				<title>ajout-decision-boucle</title>
    			</head>
    			<body>
    					<h1>AJOUT, CONDITION ET BOUCLE</h1>
    					<xsl:apply-templates />
    			</body>
    		</html>
    	</xsl:template>
     
    		<!-- template corps-page-html  -->
    	<xsl:template match="formations">
     
    		<p> Formation : <xsl:value-of select="formation"/></p>
    		<p> Code : <xsl:value-of select="formation/@code"/></p>
    		<p> Module : <xsl:value-of select="formation/@module"/></p>
     
     
     
     
    			<!-- Ajouter Elément formateur en récupérant directement la source des attributs dans le document xml -->
    		<p>
    		Formateur : 
    			<xsl:element name="formateur">MR GAMBA
    				<xsl:attribute name="cours"><xsl:value-of select="formation/@contenu-cours"/></xsl:attribute>
    				<xsl:attribute name="salle"><xsl:value-of select="formation/@numero-salle"/></xsl:attribute>
    			</xsl:element>
    		</p>
     
     
    			<!-- AJOUTER Element formateur 
    		<p>
    		 Formateur : 	
    			<xsl:element name="formateur">Mr GAMBA
                             <xsl:attribute name="cours">Syntaxe de base</xsl:attribute>
               		<xsl:attribute name="salle">s-10</xsl:attribute>
    			</xsl:element>
    			<xsl:apply-templates select="formateur"/>
    		</p>  -->
     
    	<!--	<xsl:apply-templates select="formateur"/>-->
    	</xsl:template>
     
     
     
    		<!-- TEMPLATE formateur  
    	<xsl:template match="formateur">
    		Cours :<xsl:value-of select="formateur/@cours"/>
    		Salle : <xsl:value-of select="fromateur/@salle"/>
    	</xsl:template> -->
    </xsl:stylesheet>

    C'est un peu confut dans mon esprit. Quand on créé des attributs soit on leur affecte du texte, soit on va chercher des valeurs existante dans le document xml. C'est pourquoi il y a une partie du code qui est en commentaire, car j'essayais les deux méthodes pour ajouter une valeur à un attribut. Est ce quelqu'un aurait la solution, je veux simplement afficher des attributs que j'ai créé avec xsl:element et xsl:attribut, merci beaucoup pour votre aide, en espérant que j'ai été claire dans mon explication

    dav79

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 564
    Points : 21 629
    Points
    21 629
    Par défaut
    Il faut juste insérer tes attributs avant de mettre du texte (ou quoi que ce soit) dans l'élément.

    Remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <!-- Ceci est faux ! -->
    <xsl:element name="truc">MR MACHIN
      <xsl:attribute name="chose">bidule</xsl:attribute>
    </xsl:element>
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:element name="truc">
      <xsl:attribute name="chose">bidule</xsl:attribute>
      <xsl:text>MR MACHIN</xsl:text>
    </xsl:element>

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 49
    Points
    49
    Par défaut
    Merci Thelvin pour ta réponse rapide, j'ai rectifier mon code, en insérant d'abord les attributs dans l'Elément formateur et ensuite le texte de l'Elément.

    Mais mon problème demeure le même je n'arrive pas à récupérer la valeur des attibuts que j'ai créé. Voici les deux fichiers formation.xml et formation xsl, puis l'exécution du fichier formation.xml dans le navigateur.

    Fichier formation.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="formation.xsl"?>
    <formations>
    	<formation code="06-XML" module="Introduction xml xslt" contenu-cours="Syntaxe de base" salle="s-10">
    		DEVELOPPEUR WEB 2.0
    	</formation>
    </formations>
    Fichier formation.xsl

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="iso-8859-1"/>
    	<!-- template de base  -->
    	<xsl:template match="/">
    		<html>
    			<head>
    				<title>ajout-decision-boucle</title>
    			</head>
    			<body>
    				<h1>AJOUT, CONDITION ET BOUCLE</h1>
    				<xsl:apply-templates />
    			</body>
    		</html>
    	</xsl:template>
     
    		<!-- template corps-page-html  -->
    	<xsl:template match="formations">
    			<!-- Extraire les valeurs -->
    		<p> Formation : <xsl:value-of select="formation"/></p>
    		<p> Code : <xsl:value-of select="formation/@code"/></p>
    		<p> Module : <xsl:value-of select="formation/@module"/></p>
     
     
    			<!-- AJOUTER Element formateur -->
    		<p>
    		 Formateur : 	
    			<xsl:element name="formateur">	
    				<p>Cours : <xsl:attribute name="cours">XSL Syntaxe de base</xsl:attribute></p>
    				<p>Salle : <xsl:attribute name="salle">s-10</xsl:attribute></p>
    				<xsl:text>MR GAMBA</xsl:text>
    			</xsl:element>
    </xsl:stylesheet>


    Résultat de l'excution dans le navigateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    AJOUT, CONDITION ET BOUCLE
    Formation : DEVELOPPEUR WEB 2.0 
     
    Code : 06-XML
     
    Module : Introduction xml xslt
     
    Formateur : 
     
    Cours : 
     
    Salle : 
     
    MR GAMBA

    Voici le rendu que J'aimerais obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    AJOUT, CONDITION ET BOUCLE
    Formation : DEVELOPPEUR WEB 2.0 
     
    Code : 06-XML
     
    Module : Introduction xml xslt
     
    Formateur : MR GAMBA
     
    Cours : XSL Syntaxe de base
     
    Salle : s-10
    Donc ma question est la suivante est ce que c'est possible d'extraire les valeurs des attributs que je vients de créer ?
    Et comment je dois gérer ma sortie. Si oui comment je dois prosséder ?

    Merci par avance pour ta réponse.

    dav79

  4. #4
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut


    Tu es sûr de bien comprendre la différence entre HTML et XML

    Parce que là ton problème c'est que tu mélanges les deux et pas qu'un peu

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 564
    Points : 21 629
    Points
    21 629
    Par défaut
    +1 Erwy,

    mais pour répondre à la question elle-même : le navigateur n'affiche pas le contenu des attributs, bien sûr.
    Il n'affiche que les nœuds texte, et tu peux styliser les éléments avec du CSS si tu veux.

    Ton résultat contient bel et bien tes attributs, c'est juste que le navigateur ne l'affiche pas. (D'ailleurs les attributs sont bien produits même avec ton exemple qui met du texte avant, seulement c'est censé être une erreur.)

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 49
    Points
    49
    Par défaut
    Salut Erwy, sans doute que j'ai fait quelques confusions, dans ce test xsl, je souhaitais extraire des données du document xml, et essayer d'ajouter, un élément et des attributs à l'arbre de résultat et réextraire les valeurs des attributs, dans une sortie output de méthode html. Donc si j'ai compris il n'est possible d'extraire les valeurs des attributs à l'arbre de résultat qu'on vient d'ajouter, comme je le fait pour code et module si tu retournes au début de cette discusion. Peut tu me doner plus d'explications, car ta réponse ne m'aide pas beaucoup. Je débute xsl et j'essaie de manipuler ce language, donc peut tu me répondre d'une manière concrête et présice. Est ce que je peut afficher sur une sortie output xml ou html, les valeurs des attributs que j'ai ajouté à l'arbre de résultat avec l'instruction xsl:element et xsl:attribute oui ou nom? qui estde cet type.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <xsl:element name="elt1">
       <xsl:text>mon_text</xsl:text>
       <xsl:attribute name="attr1">valeur_attr1</xsl:attribute>
       <xsl:attribute name="attr2">valeur-attr2</xsl:attribute>
    </xsl:element>
    Si oui comment je dois extraire les valeurs des attributs ?

    Merci pour ton aide.

    dav79

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 49
    Points
    49
    Par défaut
    Désolé Erwy, je n'avait pas vu que tu m'avais répondu entre ta première et ta deuxième réponse, je croix que ça répond à ma question. J'ai pas eu encore le temps de l'analyser...

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 564
    Points : 21 629
    Points
    21 629
    Par défaut
    À la limite, si le but est de t'entraîner, et puisque tu produis du HTML, tu as qu'à créer des attributs title.

    Comme ça, quand tu survoles leur élément à la souris, le navigateur va gentiment t'afficher le contenu de "title" dans une info-bulle.

    Ceci étant dit, l'élément <formateur>, ça existe pas en HTML, tu sais. Les attributs "cours" et "salle" non plus.

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur Back-End
    Inscrit en
    Avril 2006
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Avril 2006
    Messages : 113
    Points : 49
    Points
    49
    Par défaut
    Merci Thelvin et Erwy, pour vos réponses, cette fois j'ai bien compris, je peux maintenant clore cette discussion en mettant la mention résolut.

    Cordialement

    dav79

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT] Extraire des attributs en croisant les données
    Par subuntug dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 26/10/2009, 09h57
  2. [XSLT] écrire des attribut dans une balise
    Par DrDam dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/04/2008, 13h12
  3. [débutante][XSLT] Afficher des attributs
    Par Lith6 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/11/2007, 23h30
  4. [XSLT] Afficher un attribut d'un noeud pere
    Par Oberown dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 03/10/2006, 11h10
  5. [XSLT] Dédoublonner des attributs
    Par 242 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 10/11/2005, 15h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo