[AJAX] traitement xml problematique
Salut à tous.
voilà je développe une chtite page html-javascript qui va me chercher un rss (xml), le traite, et m'affiche les données dans un tableau.
jusque là aucun soucis, je me débrouille plus ou moins correctement.
seulement j'ai un problème avec la récup de certains éléments.
je m'explique:
voilà la tête du xml (extension .html je précise):
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
| <?xml version="1.0" encoding="iso-8859-1" ?>
<rss version="2.0">
<channel>
<title>title</title>
<link>lien</link>
<description>desc</description>
<language>fr-fr</language>
<copyright>Copyright 2007</copyright>
<webMaster>webmaster@site.com</webMaster>
<pubDate>Sat, 09 Feb 2008 19:43:43 +0100</pubDate><item>
<title> title1</title>
<link>lien1</link>
</item><item>
<title> title2</title>
<link>lien2</link>
</item><item>
<title> title3</title>
<link>lien3</link>
</item><item>
<title> title4</title>
<link>lien4</link>
</item><item>
<title> title5</title>
<link>lien5</link>
</item><item>
<title> title6</title>
<link>lien6</link>
</item><item>
<title> title7</title>
<link>lien7</link>
</item></channel>
</rss> |
et voilà la partie de code javascript qui récupère les infos:
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
| function afficher(){
document.getElementById("img").src = "./mktpow.gif";
if (window.XMLHttpRequest){
req = new XMLHttpRequest(); // Firefox, Safari, ...
} else {
if (window.ActiveXObject){
req = new ActiveXObject("Microsoft.XMLHTTP"); // Internet Explorer
} else {
document.getElementById("status").innerHTML = "votre navigateur est tout pourri.";
}
}
req.open('GET', './cat-6.html', true);
var reponse;
req.onreadystatechange = function() {
if(req.readyState == 4) {
if(req.status == 200){
reponse = req.responseText;
var responseHTML = document.createElement("docXML");
responseHTML.innerHTML = reponse;
var listeItems = responseHTML.getElementsByTagName("item");
for (var i = 0; i < listeItems.length; i++){
//Traitement des titres
var titreTab = listeItems.item(i).getElementsByTagName("title"); //on récupère le tableau des titres, de taille 1 (1 titre par item)
var titreTmp = titreTab.item(0).firstChild.nodeValue; //récup de la valeur du 1er (et seul) element du tableau
var finTitre = titreTmp.length;
var titre = titreTmp.substring(1, finTitre); //le titre commence par un espace qu'on dégage
//Traitement des liens
var lienTab = listeItems.item(i).getElementsByTagName('link'); //taille du tableau:1 (1 lien par item)
var lienTmp1 = lienTab.item(0); //lienTmp1 existe.
var lienTmp2 = lienTmp1.firstChild;
if (lienTmp2) {alert("ok");}
else {alert("pasok");} |
pour le titre, aucun problème, ça marche nickel.
au début j'ai donc appliqué exactement la meme methode pour la récup du lien.
seulement ça ne marchait pas.
j'ai donc fait ça étape par étape (1 variable par etape), et le chti test à la fin me renvoit "pasok", style y'a kedall dans les elements lien.
passablement enervé :furieux:, j'ai revu mon fichier html/xml, et j'ai remplacé <link></link> par <plouf></plouf>.
et là, ben ça marche, le test renvoit "ok". :|
donc au niveau de la logique, je suis totalement largué :cfou: :
pourquoi ça marche avec "plouf", et pas avec "link"??? 8O 8O