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

XML/XSL et SOAP Discussion :

Insertion d'XML dans de l'HTML (autre cas)


Sujet :

XML/XSL et SOAP

  1. #1
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Insertion d'XML dans de l'HTML (autre cas)
    J'ai le même symptôme que SDuh
    http://www.developpez.net/forums/viewtopic.php?t=388359
    en tentant d'utiliser XMLHTTPRequest (qui gère une boucle d'attente avant la fin du load)
    pour le XSL, le code
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> 
    <xsl:template match="/">
    	<div style='position:absolute; top:200px; left:300px'>
    	<table border="1" cellspacing="0" cellpadding="3">
    		<tr bgcolor="#FFFF00"> 
    			<td>Artiste</td>
    			<td>Titre</td>
    		</tr>
    		<xsl:for-each select="compilation/mp3"> 
    		<tr>
    			<td><xsl:value-of select="artiste"/></td>
    			<td><xsl:value-of select="titre"/></td>
    		</tr>
    		</xsl:for-each>
    	</table>
    	</div>
    </xsl:template>
    </xsl:stylesheet>
    avec un PHP basique (pour l'instant) qui fabrique le XML
    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
     
    <?php
     
    echo "
    <?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
    <?xml:stylesheet type=\"text/xsl\" href=\"xsl_a.xsl\"?>
    <compilation>
    <mp3>
    <titre>Foule sentimentale".$Clas."</titre>
    <artiste>Alain Souchon</artiste>
    </mp3>
    <mp3>
    <titre>Solaar pleure</titre>
    <artiste>MC Solaar</artiste>
    </mp3>
    <mp3>
    <titre>Le baiser</titre>
    <artiste>Alain Souchon</artiste>
    </mp3>
    <mp3>
    <titre>Pourtant</titre>
    <artiste>Vanessa Paradis</artiste>
    </mp3>
    <mp3>
    <titre>Chambre avec vue</titre>
    <artiste>Henri Salvador</artiste>
    </mp3>
    </compilation>
    ";
     
    ?>
    et enfin le HTML qui récupère le tout
    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
    <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
    <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='fr' lang='fr'>
    <head>
    <meta http-equiv='Content-Type' content='text/HTML; charset=iso-8859-1' />
    <meta http-equiv='Content-Language' content='fr' />
    <title>Essai de récupération de XML sur une portion de une page HTML</title>
    <script type='text/javascript'>
    	function RequêteXml(Cible,Paramètres) {
    		// chargement du fichier XSL
    		var xslObj = new ActiveXObject("Microsoft.XMLDOM");
    		xslObj.async = false;
    		xslObj.load("xsl_a.xsl");
     
    		// chargement du fichier XML
        	var xhrObj = null;
            if (window.XMLHttpRequest) {                                // Firefox
            	xhrObj = new XMLHttpRequest();
            } else {
            	if (window.ActiveXObject) {                             // Internet Explorer
                	xhrObj = new ActiveXObject('Microsoft.XMLHTTP');
                } else {                                                // XMLHttpRequest non supporté par le navigateur
                  	alert('Votre navigateur ne supporte pas les objets XMLHTTPRequest...');
                   	return;
            	}
            }
            xhrObj.open('POST', 'xml_a.php', true);						// En attendant une requete PHP
            xhrObj.onreadystatechange = function() {
               	if(xhrObj.readyState == 4) {
                   	var xmlObj = xhrObj.responseXml;					// Objet XML renvoyé du serveur (en mémoire)
    				var Résultat = xmlObj.transformNode(xslObj);
    				document.getElementById(Cible).innerHTML = Résultat;
               	}
            }
            xhrObj.setRequestHeader('Content-type','application/x-www-form-urlencoded');
            xhrObj.send(Paramètres);
        }
    </script>
    </head>
    <body>
    <div id='Début'>Début<br><input name='Début' value='Début' size=10></div>
    <div id='Cible'>Cible<br><input name='Cible' value='Cible' size=10></div>
    <div id='Suite' onclick="RequêteXml('Cible','Classe=Plouc')">Suite<br><input name='Suite' value='Suite' size=10></div>
    </body>
    </html>
    donc le symptone est d'afficher uniquement l'en-tête.
    Si je supprime les lignes d'n-tête du XSL, je ne reçois plus rien...

    Pourquoi le FOREACH ne fonctionne pas ?

    Merci de vos réponses éclairées ....

  2. #2
    Membre confirmé Avatar de a028762
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 419
    Points : 537
    Points
    537
    Par défaut Bon, c'est con !
    Une erreur de syntaxe dans le fichier PHP générant le XML
    et cela marche,
    mais pourquoi XMLDOM avec un vulgaire load synchrone fait aussi bien
    qu'un XMLHTTPRequest beaucoup délicat à mettre en oeuvre ?

Discussions similaires

  1. [XML] Insérer du XML dans un fichier HTML
    Par tafkap dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 14/11/2005, 00h14
  2. Inclure code XML dans une page HTML ?
    Par kpatoulu dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 24/10/2005, 14h59
  3. Insertion d'XML dans de l'HTML
    Par SDuh dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 02/09/2005, 21h04
  4. Insérer du XML dans une page HTML
    Par Shaman LizardKing dans le forum XML/XSL et SOAP
    Réponses: 14
    Dernier message: 04/05/2005, 07h27
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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