[AJAX] ajax récupérer fichier xml
bonjour j'ai un problème je dois faire une page qui affiche un fichier xml que l'on reçoit en utilisant ajax :
voici mon code, le javascript est un peu long mais c'est pas les fonctions qui me posent problème donc je ne pense pas que le problème vient de la fin bon je le mets quand même :
le html :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<html>
<head>
<link rel="stylesheet" href="td4.css" />
<SCRIPT LANGUAGE="Javascript" SRC="td4.js"> </SCRIPT>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body onload="requete('test.xml')">
<div>
</div>
</body>
</html> |
le fichier xml de nom test.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
|
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>Mon site</title>
<description>Ceci est un exemple de flux RSS 2.0</description>
<lastBuildDate>Wed, 27 Jul 2005 00:30:30 -0700</lastBuildDate>
<link>http://www.example.org</link>
<item>
<title>Spice girls</title>
<description> Les Spice girls se reforment !</description>
<pubDate>Mon, 19 Jul 2005 04:32:51 -0700</pubDate>
<link>http://www.example.org/spice.html</link>
</item>
<item>
<title>Bieber</title>
<description> Justin bieber se déforme !</description>
<pubDate> Tue, 20 Jul 2005 06:32:51 -0700 </pubDate>
<link>http://www.example.org/bieber.html</link>
</item>
<item>
<title>Dark vador</title>
<description> luck</description>
<pubDate> skywalker </pubDate>
<link>http://www.example.org/DarkVador.html</link>
</item>
</channel>
</rss> |
le js :
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 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
|
window.setInterval("requete('test.xml')",1000);
function requete(url){
var http_request=false;
if(window.XMLHttpRequest){
http_request=new XMLHttpRequest();
if(http_request.overrideMimeType){
http_request.overrideMimeType('text/xml');
}
}else if(window.ActiveXObject){
try{
http_request=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
http_request=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){}
}
}
if(!http_request){
alert('erreur');
return false;
}
http_request.onreadystatechange=function(){
reponse(http_request);
};
http_request.open('GET',url,true);
http_request.send(null);
}
function reponse(requete){
if(requete.readyState==4){
if(requete.status==200){
traitetexte(requete.responseXML);
}else{
alert('erreur reponse');
}
}
}
function traitetexte(xml){
var channel=xml.getElementsByTagName('rss').item(0).getElementsByTagName('channel');
var texte,valeur;
var r=255;
for(var i=0;i<channel.item(0).childNodes.length;i++){
if(channel.item(0).childNodes.item(i).nodeType==1){
var nbr=channel.item(0).childNodes.item(i).childNodes.length;
if(channel.item(0).childNodes.item(i).textContent){
valeur=channel.item(0).childNodes.item(i).textContent;
}else if(channel.item(0).childNodes.item(i).text){
valeur=channel.item(0).childNodes.item(i).text;
}
if(nbr>1){
var title,desc,date,a;
for(var j=0;j<channel.item(0).childNodes.item(i).childNodes.length;j++){
var node=channel.item(0).childNodes.item(i).childNodes.item(j);
var t=node.tagName;
if(node.textContent){
if(t=='title'){
title=node.textContent;
}else if(t=='description'){
desc=node.textContent;
}else if(t=='pubDate'){
date=node.textContent;
}else if(t=='link'){
a=node.textContent;
}
}else if(node.text){
if(t=='title'){
title=node.text;
}else if(t=='description'){
desc=node.text;
}else if(t=='pubDate'){
date=node.text;
}else if(t=='link'){
a=node.text;
}
}
}
texte+="<div style=\"width:300px;background:rgb("+r+","+r+","+r+");\">";
texte+="<p><h3>"+title+"</h3></p>";
texte+="<p>"+desc+"</p>";
texte+="<p>"+date+"</p>";
texte+="<p><a href=\""+a+"\">"+a+"</a></p>";
texte+="</div><br>";
}else{
if(valeur)
texte+=""+valeur+"<br>";
}
r-=2;
}
}
document.body.innerHTML=texte;
} |
pour tester ça avec ajax j'utilise wamp je mets mes fichiers dans le dossier www de wamp et je teste, la page s'affiche avec ce que je veux et j'ai un problème lorsque je change le contenu de mon fichier xml, ma page internet ne change pas pourtant je fais un
Code:
1 2
|
window.setInterval("requete('test.xml')",1000); |
je ne comprends pas ça devrait mettre à jour toutes les 1000 millisecondes
merci