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] Lien hypertexte à partir d'un fichier XML.


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut [XSLT] Lien hypertexte à partir d'un fichier XML.
    Bonjour à tous,

    j'ai un fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <markers>
    <marker urls="www.google.fr"/>
    </markers>
    Je souhaite récupérer la valeur contenu dans "urls" et l'afficher sous la forme d'un lien hypertexte.
    Pour l'instant j'arrive à récupérer la valeur mais je ne trouve pas la syntaxe pour faire le lien.

    Si quelqu'un pouvait me venir en aide, ça serait vraiment sympa.
    Merci d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    Citation Envoyé par anthony428 Voir le message
    Bonjour à tous,

    j'ai un fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <markers>
    <marker urls="www.google.fr"/>
    </markers>
    Je souhaite récupérer la valeur contenu dans "urls" et l'afficher sous la forme d'un lien hypertexte.
    Pour l'instant j'arrive à récupérer la valeur mais je ne trouve pas la syntaxe pour faire le lien.

    Si quelqu'un pouvait me venir en aide, ça serait vraiment sympa.
    Merci d'avance.
    ton liens est dans un HTML? si oui pourquoi ne pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="www.google.fr">mon lien</a>
    ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    En fait, ce n'est pas si simple que ça, et j'aurais préféré.

    Je récupère la valeur du champ se situant dans mon xml dans une variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urls = markers[i].getAttribute('urls');
    je ne sais pas comment faire le lien sur le contenu de cette variable.

    si vous avez des solutions à me proposer, merci d'avance.

  4. #4
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    Citation Envoyé par anthony428 Voir le message
    En fait, ce n'est pas si simple que ça, et j'aurais préféré.

    Je récupère la valeur du champ se situant dans mon xml dans une variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var urls = markers[i].getAttribute('urls');
    je ne sais pas comment faire le lien sur le contenu de cette variable.

    si vous avez des solutions à me proposer, merci d'avance.
    je ne comprends pas

    que ce que tu appelles un lien?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    en fait, l'URL du site se trouve dans mon fichier xml : www.google.fr
    lorsque je récupère cette valeur dans ma variable "urls" qui est dans mon fichier html, il n'y a pas de soucis. ça me donne "www.google.fr" mais il n'affiche qu'une chaine de caractère et non pas un lien cliquable qui me dirigerai vers le site en question.

    Alors ma question est :
    comment transformer cette chaine de caractère (urls) que je récupère dans mon xml en un lien qui me deririgerait vers un site web ?

    J'espère que je suis clair dans mon explication.
    Ce n'est pas facile à expliquer...

    Merci de prendre le temps de comprendre mon problème.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 162
    Points : 446
    Points
    446
    Par défaut
    Dans ton XML tu as par exemeple ww.google.fr et tu veut un lien valide dans ta page HTML ?

    Alors il faut que dans ta page HTML tu ai ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="www.google.fr">google</a>

    Mais ca me parait trop simple pour que ca soit vraiment ton problème

  7. #7
    Membre éclairé
    Inscrit en
    Octobre 2005
    Messages
    847
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 847
    Points : 841
    Points
    841
    Par défaut
    Citation Envoyé par anthony428 Voir le message
    en fait, l'URL du site se trouve dans mon fichier xml : www.google.fr
    lorsque je récupère cette valeur dans ma variable "urls" qui est dans mon fichier html, il n'y a pas de soucis. ça me donne "www.google.fr" mais il n'affiche qu'une chaine de caractère et non pas un lien cliquable qui me dirigerai vers le site en question.

    Alors ma question est :
    comment transformer cette chaine de caractère (urls) que je récupère dans mon xml en un lien qui me deririgerait vers un site web ?

    J'espère que je suis clair dans mon explication.
    Ce n'est pas facile à expliquer...

    Merci de prendre le temps de comprendre mon problème.

    c'est ce qu'on t'a dit :

    il faut ecrire une balise <a> lui mettre comme valeur d'attribut HREF la valeur de urls...tu utilises quoi pour recuperer ta variable, JS? si oui, il suffit de génerer le lien en Java Script.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    En fait, je n'arrive pas à utiliser la syntaxe <a href...>.
    En fait, le script que j'utilise est chargé d'afficher des markers (google map) à partir d'informations située dans mon xml.
    je vous fait parvenir les deux scripts complets avec l'essai <a href...></a>

    Mon problème est que je souhaite automatiser mon script, je n'aurai pas la même valeur stockée dans "urls" selon le choix de l'utilisateur (pour un marker en particulier).


    Code html :
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
        <head>
        <title>Carte</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <script src="http://maps.google.com/maps?file=api&v=2.x&key= ENTRER VOTRE CLE " type="text/javascript"></script>
        <script language='JavaScript' type='text/JavaScript'>
        var map = null;
        var TousMesMarqueurs = [];
       function load (){
       	var baseIcon = new GIcon();
       	baseIcon.iconSize=new GSize(12,20);
       	baseIcon.shadowSize=new GSize(20,22);
       	baseIcon.iconAnchor=new GPoint(6,20);
       	baseIcon.infoWindowAnchor=new GPoint(5,1);
     
       	var national = new GIcon(baseIcon, 'marker-orange.png', null, '');
       	var international = new GIcon(baseIcon, 'http://labs.google.com/ridefinder/images/mm_20_blue.png', null, 'http://labs.google.com/ridefinder/images/mm_20_shadow.png');
     
       	// Création de la Carte //
       	var MaCarte = new GMap2(document.getElementById('EmplacementDeMacarte'));
       	MaCarte.addControl(new GLargeMapControl());
       	MaCarte.addControl(new GMapTypeControl());
     
    	/*Définission du centre et du niveau de zoom de la carte initiale*/
       	MaCarte.setCenter(new GLatLng(47.38254402467962, 0.690765380859375), 9);
     
     
       	var ToutesLesBalisesInput = document.getElementsByTagName('input');
       	if(ToutesLesBalisesInput != null){
       		for(var i = 0; i < ToutesLesBalisesInput.length; i++){
       			if(ToutesLesBalisesInput[i].type == 'checkbox'){
       				ToutesLesBalisesInput[i].onclick=function(){EnvoiLoisir(this);}
       			}
      		}
       	}
     
       	function EnvoiLoisir(val){
       		if(val == null){return;}
       		var loisirselec=val.value;
       		if(val.checked==true){
       			GDownloadUrl('data.xml', function(data) {
       				var xml = GXml.parse(data);
       				var markers = xml.documentElement.getElementsByTagName('marker');
       				for (var i = 0; i < markers.length; i++) {
       					var type = markers[i].getAttribute('type');
       					if(type == loisirselec){
       							var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')), parseFloat(markers[i].getAttribute('lng')));
       							var nom = markers[i].getAttribute('nom');
       							var adresse = markers[i].getAttribute('adresse');
       							var codepostal = markers[i].getAttribute('codepostal');
       							var ville = markers[i].getAttribute('ville');
       							var type = markers[i].getAttribute('type');
    							  var urls = markers[i].getAttribute('urls');
     
    							// La syntaxe suivante ne fonctionne pas
    							var urls = <a href="urls">urls</a>;
    							// fin du lien
     
       							var marker = CreationDuMarqueur(point, nom, adresse, codepostal, ville, type, urls, i);
       							MaCarte.addOverlay(marker);
       					}
       				}
       			});
       		}
     
       		if(val.checked==false){ <!-- Si la case est décochée ... -->
       			GDownloadUrl('data.xml', function(data) {
       				var xml = GXml.parse(data);
       				var markers = xml.documentElement.getElementsByTagName('marker');
       				for (var i = 0; i < markers.length; i++) {
       					var type = markers[i].getAttribute('type');
       					if(type == loisirselec){ <!-- ... les marqueurs correspondant à la catégorie ... -->
       							MaCarte.removeOverlay(TousMesMarqueurs[i]);<!-- ... sont masqués -->
       					}
       				}
       			});
       		}	
     
       	}
     
       	function CreationDuMarqueur(point, nom, adresse, codepostal, ville, type, urls, i) { 
       		if(type=='national'){var icone = national;} 
       		if(type=='international'){var icone = international;} 
       		var marker = new GMarker(point,icone); 
       		TousMesMarqueurs[i]=marker;
       		GEvent.addListener(marker, 'click', function() { <!-- En cas de click sur le marqueur ... -->
      			marker.openInfoWindowHtml('<b>' + nom + '</b><br/>' + adresse + '<br/>' + codepostal + ' ' + ville +'<br/>'+ urls ); 
       		}); 
       		return marker; 
       	}
     
       };
       </script>
       <style type="text/css">
       <!--
       #cadre {margin: 0; padding:10px 0 5px 0; width: 740px; height: auto; border: 1px solid #B8D6C2;text-align:center; background-color: #F6FCEC;}
       #EmplacementDeMacarte {border: 1px solid #B8D6C2;}
       -->
       </style>
       </head>
     
       <body onload="load()" onunload="GUnload()"><center>
       <div id="EmplacementDeMacarte" style="width: 740px; height: 400px"></div>
       <br />
       <div id="cadre">
      Cliquez sur les "cases à cocher" ci-dessous pour faire apparaître ou disparaître les marqueurs.<br />
      En cliquant sur chaque marqueur, une info-bulle contenant les coordonnées de la société s'affiche.<br /><br />
      <form>| <input type="checkbox" name="loisir" value="national">
      National | 
        <input type="checkbox" name="loisir" value="international"> 
        International |
      </form>
      </div>
     
      </body>
      </html>


    Voici le xontenu du fichier xml complet :

    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
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <markers>
    <marker lat="47.391174" lng="0.722265" type="national" nom="Honda Moto Tours" adresse="108-110, avenue de le République" codepostal="37700" ville="Saint-Pierre-des-Corps" urls="www.google.fr"/>
    <marker lat="47.417692" lng="0.691023" type="national" nom="Kawasaki Tours Touraine Moto" adresse="142, avenue Maginot" codepostal="37100" ville="Tours" urls="www.google.fr"/>
    <marker lat="47.382602" lng="0.726686" type="national" nom="Pocket Bike Mania" adresse="51, rue Grands Mortiers|ZA Grands Mortiers" codepostal="37700" ville="Saint-Pierre-des-Corps" urls="www.google.fr" />
    <!--<marker lat="47.382602" lng="0.726686" type="international" nom="Pole Karting Services" adresse="6, rue Gustave Eiffel - Z.I. N° 1" codepostal="37300" ville="Joué-les-Tours"/>
    <marker lat="47.419094" lng="0.693244" type="international" nom="Team Deletang" adresse="143-147, avenue Andre Maginot" codepostal="37100" ville="Tours"/>
    <marker lat="47.41997222" lng="0.66213889" type="national" nom="Bellanger Motos" adresse="220, boulevard Charles de Gaulle" codepostal="37540" ville="Saint-Cyr-sur-Loire"/>
    <marker lat="47.41972222" lng="0.66133333" type="national" nom="Déclic'Motos" adresse="1, rue Pierre de Coubertin" codepostal="37540" ville="Saint-Cyr-sur-Loire"/>
    <marker lat="47.41977778" lng="0.66105556" type="national" nom="FD Moto Shop" adresse="3, rue Pierre de Coubertin" codepostal="37540" ville="Saint-Cyr-sur-Loire"/>
    <marker lat="47.354685" lng="0.673428" type="national" nom="New Motorz" adresse="5 bis, rue de Chambray" codepostal="37300" ville="Joué-les-Tours"/>
    <marker lat="47.395328" lng="0.746727" type="international" nom="Fun Kart Loisirs" adresse="ld Louche Saint Martin" codepostal="37700" ville="la-Ville-aux-Dames"/>
    <marker lat="47.358755" lng="0.734775" type="international" nom="Karting Club du Ripault" adresse="6 rue Camusière" codepostal="37550" ville="Saint-Avertin"/>
    <marker lat="47.387418" lng="0.760717" type="international" nom="Gokart" adresse="rue Louise de la Vallière" codepostal="37700" ville="la-Ville-aux-Dames"/>
    <marker lat="47.459477" lng="0.674672" type="international" nom="Fun Quad Evasion" adresse="Z.I Les Gaudières" codepostal="37390" ville="Mettray"/>
    <marker lat="47.338365" lng="0.616983" type="international" nom="Dom Quad Motoculture" adresse="9, bis boulevard Jean Jaurès" codepostal="37510" ville="Ballan-Miré"/>
    <marker lat="56.464388" lng="0.773388" type="international" nom="Touraine Montgolfière" adresse="La Petite Baltière" codepostal="37210" ville="Rochecorbon"/>
    <marker lat="47.345453" lng="0.542879" type="national" nom="Dakota" adresse="boulevard de Chinon|Autoroute A85 sortie N°1°" codepostal="37510" ville="Ballan-Miré"/>
    <marker lat="47.253136" lng="0.543823" type="international" nom="Team Quad 37" adresse="22, chemin des Aunays" codepostal="37190" ville="Saché"/>
    <marker lat="47.323465" lng="0.918732" type="international" nom="Air Ouest ULM" adresse="Aérodrome de Tours-Sorigny" codepostal="37250" ville="Sorigny"/>
    <marker lat="47.35278" lng="0.952377" type="international" nom="Ailes Tourangelles" adresse="Aérodrome d'Amboise Dierre" codepostal="37150" ville="Dierre"/>
    <marker lat="47.547799" lng="0.546355" type="international" nom="SARL Plé" adresse="Le Moulin de Pérran" codepostal="37360" ville="Neuillé-Pont-Pierre"/>
    <marker lat="47.547799" lng="0.546355" type="national" nom="SP Moto 37" adresse="RN 143 route de Loches" codepostal="37170" ville="Chambray-lès-Tours"/>
    <marker lat="47.20118" lng="0.652281" type="international" nom="Formule Kart Touraine" adresse="Les Circuits de Touraine|La Laurière - D21" codepostal="37260" ville="37260"/>
    <marker lat="47.424277" lng="0.982107" type="international" nom="Balloon Revolution" adresse="3, rue du Colombier" codepostal="37530" ville="Pocé-sur-Cisse"/>
    <marker lat="47.398349" lng="1.005764" type="national" nom="Olivier Motos Quads" adresse="Boulevard Saint Denis Hors (D31)" codepostal="37400" ville="Amboise"/>
    <marker lat="47.617273" lng="0.595322" type="international" nom="Air Touraine Hélicoptère" adresse="Héliport de Belleville" codepostal="37370" ville="Neuvy-le-Roi"/>
    <marker lat="47.164742" lng="0.786381" type="international" nom="Touraine Planeur" adresse="Le Louroux" codepostal="37240" ville="Le-Louroux"/>
    <marker lat="47.451308" lng="0.32032" type="international" nom="Aeroclub de Savigne" adresse="Les Champs Marquis" codepostal="37340" ville="Savigné-sur-Lathan"/>
    <marker lat="47.254184" lng="0.300922" type="international" nom="Le Clos d'Ussé" adresse="7, rue Principale" codepostal="37420" ville="Rigny-Ussé"/>
    <marker lat="47.154945" lng="1.010517" type="international" nom="Natur'Ailes" adresse="Base ULM 'Les Jolletières'" codepostal="37600" ville="Loches"/>
    <marker lat="47.285197" lng="1.159358" type="international" nom="Art Montgolfières" adresse="Les Bruyères" codepostal="41400" ville="Saint-Georges-sur-Cher"/>
    <marker lat="47.343083" lng="1.185086" type="international" nom="France Montgolfières - Balloon Flights" adresse="24, rue Nationale" codepostal="41400" ville="Montrichard"/>
    <marker lat="47.063808" lng="0.492325" type="international" nom="Loca - Quads" adresse="le Village du Bois" codepostal="37220" ville="Rilly-sur-Vienne"/>
    <marker lat="47.50483" lng="1.196705" type="international" nom="Aérocom" adresse="36, route de Chouzy" codepostal="41150" ville="Onzain"/>
    <marker lat="47.166573" lng="0.239178" type="national" nom="Chinon Motos" adresse="31-33, rue du Commerce" codepostal="37500" ville="Chinon"/>
    --></markers>

Discussions similaires

  1. Réponses: 10
    Dernier message: 19/02/2015, 12h23
  2. utiliser xslt pour afficher du texte à partir d'un fichier xml
    Par med_ellouze dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 23/08/2007, 14h52
  3. [XSLT] Générer une liste déroulante à partir d'un fichier xml ?
    Par chipster45 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/03/2007, 09h59
  4. [DTD] Créé un DTD à partir d'un fichier XML
    Par Oberown dans le forum Valider
    Réponses: 5
    Dernier message: 14/12/2006, 11h55
  5. Excel : lien hypertexte vers un autre fichier avec nom page
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 09h33

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