XHTML Ajax et RSS

Résolu
Cadavre Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
Cadavre Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
j'essaie depuis plusieurs heures de simplement prendre un flux RSS tel que celui du journal LeDevoir disponible à cette adresse "ledevoir.com/rss/ledevoir.xml" et de traiter seulement 2 champs soit Title et Description. Et jusqu'à maintenant si je traite seulement la balise Title tout fonctionne bien. Mais dès que j'essaie de traiter les 2 balises XML qui m'intéressent, alors ma page XHTML n'affiche plus rien ! Voici mon code XHTML en question:

Test.xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<title>LeDevoir</title>

<script language="JavaScript">

function chargeDocument(URI) {
try {

xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", URI,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
affiche(xmlhttp.responseXML);
}
}
xmlhttp.send(null);
} catch(o) {alert(o);}
}

function affiche(doc) {

elementol = document.createElement("ol");
var allitems = doc.getElementsByTagName("item");
for (var i=0; i < allitems.length; i++) {
var itemElm = allitems[i];
var titreElm = itemElm.getElementsByTagName("title").item(0);
var titleText = titleElm.firstChild.nodeValue;
var DescripElm = itemElm.getElementsByTagName("description").item(0);
var DescripText = DescripElm.firstChild.nodeValue;

elementli = document.createElement("li");

var txtNode = document.createTextNode(titleText);
elementli.appendChild(document.createTextNode(txtNode));

elementol.appendChild(elementli);

body = document.getElementsByTagName("body").item(0);
body.appendChild(elementol);
}
}
</script>
</head>
<body>
<ul>
<li><a href="javascript:chargeDocument('ledevoir.xml');">
Récupère et affiche le titre et la description.</a></li>
</ul>
</body>
</html>

Comme vous pouvez le voir, je ne cherche pas à faire quoi que ce soit de compliquer. Je veux simplement identifier la valeur de 2 balises pour chaque item et en afficher leur contenu respectif. Alors, toute aide serait vraiment appréciée!!
A voir également:

1 réponse

Cadavre Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   2
 
J'ai trouvé une solution. La voici en quelques lignes:

[...]
var items_count=doc.getElementsByTagName('item').length;
var title=new Array(), description=new Array(), link = new Array();
[...]
for (var i=0; i < items_count; i++) {
if(doc.getElementsByTagName('item')[i].getElementsByTagName('title').length==1)
title[i]=doc.getElementsByTagName('item')[i].getElementsByTagName('title')[0];

if(doc.getElementsByTagName('item')[i].getElementsByTagName('description').length==1)
description[i]=doc.getElementsByTagName('item')[i].getElementsByTagName('description')[0];
}
[...]
for (var i=0; i < items_count; i++) {

var descrip_w, title_w, link_w;
title_w = title[i].firstChild.nodeValue;
descrip_w = description[i].firstChild.nodeValue;
[...]
0