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:
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:
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:
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 ....